include/opcode/

2013-01-30  Yufeng Zhang  <yufeng.zhang@arm.com>

	* aarch64.h (aarch64_op): Add OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2.

opcodes/

2013-01-30  Yufeng Zhang  <yufeng.zhang@arm.com>

	* aarch64-tbl.h (aarch64_opcode_table): Flag sshll, sshll2, ushll and
	ushll2 with F_HAS_ALIAS.  Add entries for sxtl, sxtl2, uxtl and uxtl2.
	* aarch64-asm.c (convert_xtl_to_shll): New function.
	(convert_to_real): Handle OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2 by
	calling convert_xtl_to_shll.
	* aarch64-dis.c (convert_shll_to_xtl): New function.
	(convert_to_alias): Handle OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2 by
	calling convert_shll_to_xtl.
	* aarch64-gen.c: Update copyright year.
	* aarch64-asm-2.c: Re-generate.
	* aarch64-dis-2.c: Re-generate.
	* aarch64-opc-2.c: Re-generate.

gas/testsuite/

2013-01-30  Yufeng Zhang  <yufeng.zhang@arm.com>

	* gas/aarch64/alias.s: Add new tests.
	* gas/aarch64/alias.d: Update.
	* gas/aarch64/no-aliases.d: Update.
This commit is contained in:
Yufeng Zhang 2013-01-30 15:43:32 +00:00
parent f9b2d5449a
commit e30181a58d
14 changed files with 817 additions and 663 deletions

View File

@ -1,3 +1,9 @@
2013-01-30 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/alias.s: Add new tests.
* gas/aarch64/alias.d: Update.
* gas/aarch64/no-aliases.d: Update.
2013-01-30 Markos Chandras <markos.chandras@imgtec.com>
* gas/metag/metacore21-invalid.s: Add invalid SWAP testcases.

View File

@ -72,3 +72,27 @@ Disassembly of section \.text:
100: b13ffdff cmn x15, #0xfff
104: f13fffef subs x15, sp, #0xfff
108: b13ffdff cmn x15, #0xfff
10c: 0f08a448 sxtl v8.8h, v2.8b
110: 0f08a448 sxtl v8.8h, v2.8b
114: 4f08a448 sxtl2 v8.8h, v2.16b
118: 4f08a448 sxtl2 v8.8h, v2.16b
11c: 0f10a448 sxtl v8.4s, v2.4h
120: 0f10a448 sxtl v8.4s, v2.4h
124: 4f10a448 sxtl2 v8.4s, v2.8h
128: 4f10a448 sxtl2 v8.4s, v2.8h
12c: 0f20a448 sxtl v8.2d, v2.2s
130: 0f20a448 sxtl v8.2d, v2.2s
134: 4f20a448 sxtl2 v8.2d, v2.4s
138: 4f20a448 sxtl2 v8.2d, v2.4s
13c: 2f08a448 uxtl v8.8h, v2.8b
140: 2f08a448 uxtl v8.8h, v2.8b
144: 6f08a448 uxtl2 v8.8h, v2.16b
148: 6f08a448 uxtl2 v8.8h, v2.16b
14c: 2f10a448 uxtl v8.4s, v2.4h
150: 2f10a448 uxtl v8.4s, v2.4h
154: 6f10a448 uxtl2 v8.4s, v2.8h
158: 6f10a448 uxtl2 v8.4s, v2.8h
15c: 2f20a448 uxtl v8.2d, v2.2s
160: 2f20a448 uxtl v8.2d, v2.2s
164: 6f20a448 uxtl2 v8.2d, v2.4s
168: 6f20a448 uxtl2 v8.2d, v2.4s

View File

@ -2,7 +2,7 @@
preference. It is also used to test the -Mno-aliases option in
the disassemler.
Copyright 2012 Free Software Foundation, Inc.
Copyright 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GAS.
@ -99,3 +99,21 @@
adds xzr, x15, #0xfff
subs x15, sp, #0xfff
cmn x15, #0xfff
.macro asimdshll s
\s\()xtl v8.8h, v2.8b
\s\()shll v8.8h, v2.8b, #0
\s\()xtl2 v8.8h, v2.16b
\s\()shll2 v8.8h, v2.16b, #0
\s\()xtl v8.4s, v2.4h
\s\()shll v8.4s, v2.4h, #0
\s\()xtl2 v8.4s, v2.8h
\s\()shll2 v8.4s, v2.8h, #0
\s\()xtl v8.2d, v2.2s
\s\()shll v8.2d, v2.2s, #0
\s\()xtl2 v8.2d, v2.4s
\s\()shll2 v8.2d, v2.4s, #0
.endm
asimdshll s
asimdshll u

View File

@ -73,3 +73,27 @@ Disassembly of section \.text:
100: b13ffdff adds xzr, x15, #0xfff
104: f13fffef subs x15, sp, #0xfff
108: b13ffdff adds xzr, x15, #0xfff
10c: 0f08a448 sshll v8.8h, v2.8b, #0
110: 0f08a448 sshll v8.8h, v2.8b, #0
114: 4f08a448 sshll2 v8.8h, v2.16b, #0
118: 4f08a448 sshll2 v8.8h, v2.16b, #0
11c: 0f10a448 sshll v8.4s, v2.4h, #0
120: 0f10a448 sshll v8.4s, v2.4h, #0
124: 4f10a448 sshll2 v8.4s, v2.8h, #0
128: 4f10a448 sshll2 v8.4s, v2.8h, #0
12c: 0f20a448 sshll v8.2d, v2.2s, #0
130: 0f20a448 sshll v8.2d, v2.2s, #0
134: 4f20a448 sshll2 v8.2d, v2.4s, #0
138: 4f20a448 sshll2 v8.2d, v2.4s, #0
13c: 2f08a448 ushll v8.8h, v2.8b, #0
140: 2f08a448 ushll v8.8h, v2.8b, #0
144: 6f08a448 ushll2 v8.8h, v2.16b, #0
148: 6f08a448 ushll2 v8.8h, v2.16b, #0
14c: 2f10a448 ushll v8.4s, v2.4h, #0
150: 2f10a448 ushll v8.4s, v2.4h, #0
154: 6f10a448 ushll2 v8.4s, v2.8h, #0
158: 6f10a448 ushll2 v8.4s, v2.8h, #0
15c: 2f20a448 ushll v8.2d, v2.2s, #0
160: 2f20a448 ushll v8.2d, v2.2s, #0
164: 6f20a448 ushll2 v8.2d, v2.4s, #0
168: 6f20a448 ushll2 v8.2d, v2.4s, #0

View File

@ -1,3 +1,7 @@
2013-01-30 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64.h (aarch64_op): Add OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2.
2013-01-28 Alexis Deruelle <alexis.deruelle@gmail.com>
PR gas/15069

View File

@ -1,6 +1,6 @@
/* AArch64 assembler/disassembler support.
Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GNU Binutils.
@ -424,6 +424,11 @@ enum aarch64_op
OP_ROR_IMM,
OP_SXTL,
OP_SXTL2,
OP_UXTL,
OP_UXTL2,
OP_TOTAL_NUM, /* Pseudo. */
};

View File

@ -1,3 +1,18 @@
2013-01-30 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64-tbl.h (aarch64_opcode_table): Flag sshll, sshll2, ushll and
ushll2 with F_HAS_ALIAS. Add entries for sxtl, sxtl2, uxtl and uxtl2.
* aarch64-asm.c (convert_xtl_to_shll): New function.
(convert_to_real): Handle OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2 by
calling convert_xtl_to_shll.
* aarch64-dis.c (convert_shll_to_xtl): New function.
(convert_to_alias): Handle OP_SXTL, OP_SXTL2, OP_UXTL and OP_UXTL2 by
calling convert_shll_to_xtl.
* aarch64-gen.c: Update copyright year.
* aarch64-asm-2.c: Re-generate.
* aarch64-dis-2.c: Re-generate.
* aarch64-opc-2.c: Re-generate.
2013-01-24 Nick Clifton <nickc@redhat.com>
* v850-dis.c: Add support for e3v5 architecture.

View File

@ -1,5 +1,5 @@
/* This file is automatically generated by aarch64-gen. Do not edit! */
/* Copyright 2012 Free Software Foundation, Inc.
/* Copyright 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
@ -76,147 +76,159 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
case 259: /* mov */
value = 258; /* --> orr. */
break;
case 427: /* mov */
value = 426; /* --> dup. */
case 314: /* sxtl */
value = 313; /* --> sshll. */
break;
case 494: /* sxtw */
case 493: /* sxth */
case 492: /* sxtb */
case 495: /* asr */
case 491: /* sbfx */
case 490: /* sbfiz */
value = 489; /* --> sbfm. */
case 316: /* sxtl2 */
value = 315; /* --> sshll2. */
break;
case 498: /* bfxil */
case 497: /* bfi */
value = 496; /* --> bfm. */
case 336: /* uxtl */
value = 335; /* --> ushll. */
break;
case 503: /* uxth */
case 502: /* uxtb */
case 505: /* lsr */
case 504: /* lsl */
case 501: /* ubfx */
case 500: /* ubfiz */
value = 499; /* --> ubfm. */
case 338: /* uxtl2 */
value = 337; /* --> ushll2. */
break;
case 523: /* cset */
case 522: /* cinc */
value = 521; /* --> csinc. */
case 431: /* mov */
value = 430; /* --> dup. */
break;
case 526: /* csetm */
case 525: /* cinv */
value = 524; /* --> csinv. */
case 498: /* sxtw */
case 497: /* sxth */
case 496: /* sxtb */
case 499: /* asr */
case 495: /* sbfx */
case 494: /* sbfiz */
value = 493; /* --> sbfm. */
break;
case 528: /* cneg */
value = 527; /* --> csneg. */
case 502: /* bfxil */
case 501: /* bfi */
value = 500; /* --> bfm. */
break;
case 553: /* lsl */
value = 552; /* --> lslv. */
case 507: /* uxth */
case 506: /* uxtb */
case 509: /* lsr */
case 508: /* lsl */
case 505: /* ubfx */
case 504: /* ubfiz */
value = 503; /* --> ubfm. */
break;
case 555: /* lsr */
value = 554; /* --> lsrv. */
case 527: /* cset */
case 526: /* cinc */
value = 525; /* --> csinc. */
break;
case 557: /* asr */
value = 556; /* --> asrv. */
case 530: /* csetm */
case 529: /* cinv */
value = 528; /* --> csinv. */
break;
case 559: /* ror */
value = 558; /* --> rorv. */
case 532: /* cneg */
value = 531; /* --> csneg. */
break;
case 561: /* mul */
value = 560; /* --> madd. */
case 557: /* lsl */
value = 556; /* --> lslv. */
break;
case 563: /* mneg */
value = 562; /* --> msub. */
case 559: /* lsr */
value = 558; /* --> lsrv. */
break;
case 565: /* smull */
value = 564; /* --> smaddl. */
case 561: /* asr */
value = 560; /* --> asrv. */
break;
case 567: /* smnegl */
value = 566; /* --> smsubl. */
case 563: /* ror */
value = 562; /* --> rorv. */
break;
case 570: /* umull */
value = 569; /* --> umaddl. */
case 565: /* mul */
value = 564; /* --> madd. */
break;
case 572: /* umnegl */
value = 571; /* --> umsubl. */
case 567: /* mneg */
value = 566; /* --> msub. */
break;
case 583: /* ror */
value = 582; /* --> extr. */
case 569: /* smull */
value = 568; /* --> smaddl. */
break;
case 683: /* strb */
value = 681; /* --> sturb. */
case 571: /* smnegl */
value = 570; /* --> smsubl. */
break;
case 684: /* ldrb */
value = 682; /* --> ldurb. */
case 574: /* umull */
value = 573; /* --> umaddl. */
break;
case 686: /* ldrsb */
value = 685; /* --> ldursb. */
case 576: /* umnegl */
value = 575; /* --> umsubl. */
break;
case 689: /* str */
value = 687; /* --> stur. */
case 587: /* ror */
value = 586; /* --> extr. */
break;
case 690: /* ldr */
value = 688; /* --> ldur. */
case 687: /* strb */
value = 685; /* --> sturb. */
break;
case 693: /* strh */
value = 691; /* --> sturh. */
case 688: /* ldrb */
value = 686; /* --> ldurb. */
break;
case 694: /* ldrh */
value = 692; /* --> ldurh. */
case 690: /* ldrsb */
value = 689; /* --> ldursb. */
break;
case 696: /* ldrsh */
value = 695; /* --> ldursh. */
case 693: /* str */
value = 691; /* --> stur. */
break;
case 699: /* str */
value = 697; /* --> stur. */
case 694: /* ldr */
value = 692; /* --> ldur. */
break;
case 700: /* ldr */
value = 698; /* --> ldur. */
case 697: /* strh */
value = 695; /* --> sturh. */
break;
case 702: /* ldrsw */
value = 701; /* --> ldursw. */
case 698: /* ldrh */
value = 696; /* --> ldurh. */
break;
case 704: /* prfm */
value = 703; /* --> prfum. */
case 700: /* ldrsh */
value = 699; /* --> ldursh. */
break;
case 746: /* bic */
value = 745; /* --> and. */
case 703: /* str */
value = 701; /* --> stur. */
break;
case 748: /* mov */
value = 747; /* --> orr. */
case 704: /* ldr */
value = 702; /* --> ldur. */
break;
case 751: /* tst */
value = 750; /* --> ands. */
case 706: /* ldrsw */
value = 705; /* --> ldursw. */
break;
case 756: /* uxtw */
case 755: /* mov */
value = 754; /* --> orr. */
case 708: /* prfm */
value = 707; /* --> prfum. */
break;
case 758: /* mvn */
value = 757; /* --> orn. */
case 750: /* bic */
value = 749; /* --> and. */
break;
case 762: /* tst */
value = 761; /* --> ands. */
case 752: /* mov */
value = 751; /* --> orr. */
break;
case 765: /* mov */
value = 764; /* --> movn. */
case 755: /* tst */
value = 754; /* --> ands. */
break;
case 767: /* mov */
value = 766; /* --> movz. */
case 760: /* uxtw */
case 759: /* mov */
value = 758; /* --> orr. */
break;
case 778: /* sevl */
case 777: /* sev */
case 776: /* wfi */
case 775: /* wfe */
case 774: /* yield */
case 773: /* nop */
value = 772; /* --> hint. */
case 762: /* mvn */
value = 761; /* --> orn. */
break;
case 787: /* tlbi */
case 786: /* ic */
case 785: /* dc */
case 784: /* at */
value = 783; /* --> sys. */
case 766: /* tst */
value = 765; /* --> ands. */
break;
case 769: /* mov */
value = 768; /* --> movn. */
break;
case 771: /* mov */
value = 770; /* --> movz. */
break;
case 782: /* sevl */
case 781: /* sev */
case 780: /* wfi */
case 779: /* wfe */
case 778: /* yield */
case 777: /* nop */
value = 776; /* --> hint. */
break;
case 791: /* tlbi */
case 790: /* ic */
case 789: /* dc */
case 788: /* at */
value = 787; /* --> sys. */
break;
default: return NULL;
}

View File

@ -1,5 +1,5 @@
/* aarch64-asm.c -- AArch64 assembler support.
Copyright 2012 Free Software Foundation, Inc.
Copyright 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
@ -958,6 +958,16 @@ convert_ror_to_extr (aarch64_inst *inst)
copy_operand_info (inst, 2, 1);
}
/* UXTL<Q> <Vd>.<Ta>, <Vn>.<Tb>
is equivalent to:
USHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #0. */
static void
convert_xtl_to_shll (aarch64_inst *inst)
{
inst->operands[2].qualifier = inst->operands[1].qualifier;
inst->operands[2].imm.value = 0;
}
/* Convert
LSR <Xd>, <Xn>, #<shift>
to
@ -1167,6 +1177,12 @@ convert_to_real (aarch64_inst *inst, const aarch64_opcode *real)
case OP_ROR_IMM:
convert_ror_to_extr (inst);
break;
case OP_SXTL:
case OP_SXTL2:
case OP_UXTL:
case OP_UXTL2:
convert_xtl_to_shll (inst);
break;
default:
break;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* aarch64-dis.c -- AArch64 disassembler.
Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
@ -1478,6 +1478,20 @@ convert_extr_to_ror (aarch64_inst *inst)
return 0;
}
/* UXTL<Q> <Vd>.<Ta>, <Vn>.<Tb>
is equivalent to:
USHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #0. */
static int
convert_shll_to_xtl (aarch64_inst *inst)
{
if (inst->operands[2].imm.value == 0)
{
inst->operands[2].type = AARCH64_OPND_NIL;
return 1;
}
return 0;
}
/* Convert
UBFM <Xd>, <Xn>, #<shift>, #63.
to
@ -1731,6 +1745,11 @@ convert_to_alias (aarch64_inst *inst, const aarch64_opcode *alias)
return convert_movebitmask_to_mov (inst);
case OP_ROR_IMM:
return convert_extr_to_ror (inst);
case OP_SXTL:
case OP_SXTL2:
case OP_UXTL:
case OP_UXTL2:
return convert_shll_to_xtl (inst);
default:
return 0;
}

View File

@ -1,6 +1,6 @@
/* aarch64-gen.c -- Generate tables and routines for opcode lookup and
instruction encoding and decoding.
Copyright 2012 Free Software Foundation, Inc.
Copyright 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
@ -1242,7 +1242,7 @@ main (int argc, char **argv)
print_divide_result (decoder_tree);
printf ("/* This file is automatically generated by aarch64-gen. Do not edit! */\n");
printf ("/* Copyright 2012 Free Software Foundation, Inc.\n\
printf ("/* Copyright 2012, 2013 Free Software Foundation, Inc.\n\
Contributed by ARM Ltd.\n\
\n\
This file is part of the GNU opcodes library.\n\

View File

@ -1,5 +1,5 @@
/* This file is automatically generated by aarch64-gen. Do not edit! */
/* Copyright 2012 Free Software Foundation, Inc.
/* Copyright 2012, 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of the GNU opcodes library.
@ -119,70 +119,73 @@ const struct aarch64_operand aarch64_operands[] =
static const unsigned op_enum_table [] =
{
0,
648,
649,
650,
652,
653,
654,
655,
656,
657,
651,
652,
658,
659,
681,
682,
660,
661,
655,
656,
662,
663,
685,
686,
689,
695,
696,
699,
701,
702,
691,
692,
695,
697,
698,
687,
688,
701,
703,
741,
742,
743,
744,
705,
707,
745,
746,
747,
748,
12,
510,
511,
768,
770,
772,
752,
771,
769,
259,
499,
509,
508,
750,
505,
502,
495,
494,
501,
504,
506,
507,
764,
766,
768,
748,
767,
765,
259,
495,
505,
504,
746,
501,
498,
491,
490,
497,
500,
502,
503,
756,
125,
522,
525,
528,
523,
760,
526,
614,
529,
532,
527,
530,
618,
160,
161,
162,
163,
416,
583,
420,
587,
314,
316,
336,
338,
};
/* Given the opcode enumerator OP, return the pointer to the corresponding

View File

@ -1534,8 +1534,10 @@ struct aarch64_opcode aarch64_opcode_table[] =
{"sqshrn2", 0x4f009400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0},
{"sqrshrn", 0xf009c00, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0},
{"sqrshrn2", 0x4f009c00, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0},
{"sshll", 0xf00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, 0},
{"sshll2", 0x4f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, 0},
{"sshll", 0xf00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, F_HAS_ALIAS},
{"sxtl", 0xf00a400, 0xff87fc00, asimdshf, OP_SXTL, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS, F_ALIAS | F_CONV},
{"sshll2", 0x4f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, F_HAS_ALIAS},
{"sxtl2", 0x4f00a400, 0xff87fc00, asimdshf, OP_SXTL2, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS2, F_ALIAS | F_CONV},
{"scvtf", 0xf00e400, 0xbf80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0},
{"fcvtzs", 0xf00fc00, 0xbf80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0},
{"ushr", 0x2f000400, 0xbf80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0},
@ -1554,8 +1556,10 @@ struct aarch64_opcode aarch64_opcode_table[] =
{"uqshrn2", 0x6f009400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0},
{"uqrshrn", 0x2f009c00, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0},
{"uqrshrn2", 0x6f009c00, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0},
{"ushll", 0x2f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, 0},
{"ushll2", 0x6f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, 0},
{"ushll", 0x2f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, F_HAS_ALIAS},
{"uxtl", 0x2f00a400, 0xff87fc00, asimdshf, OP_UXTL, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS, F_ALIAS | F_CONV},
{"ushll2", 0x6f00a400, 0xff80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, F_HAS_ALIAS},
{"uxtl2", 0x6f00a400, 0xff87fc00, asimdshf, OP_UXTL2, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS2, F_ALIAS | F_CONV},
{"ucvtf", 0x2f00e400, 0xbf80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0},
{"fcvtzu", 0x2f00fc00, 0xbf80fc00, asimdshf, 0, SIMD, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0},
/* AdvSIMD TBL/TBX. */