]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Allow WZR in alt-base loads and stores
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 7 Apr 2022 10:00:36 +0000 (11:00 +0100)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 1 Sep 2022 22:59:25 +0000 (15:59 -0700)
The alt-base loads and stores allow WZR and XZR to be specified
as the register being loaded or stored.  We were accepting the
XZR forms but not the WZR ones.

The easiest fix is to drop the separate Wt operand type.  Most
other instructions handle the W/X distinction using the qualifiers
instead, and all instructions that used Wt already specified W
qualifiers.

gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/morello_ldst-c64.d
gas/testsuite/gas/aarch64/morello_ldst.d
gas/testsuite/gas/aarch64/morello_ldst.s
include/opcode/aarch64.h
opcodes/aarch64-asm-2.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-opc-2.c
opcodes/aarch64-opc.c
opcodes/aarch64-tbl.h

index a461b5d3bb0dfc4d2e12cf3a8ec351e5982a7203..f8551e8716d89912c111af205f40fcb684df09eb 100644 (file)
@@ -6583,10 +6583,6 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 
       switch (operands[i])
        {
-       case AARCH64_OPND_Wt:
-         po_int_reg_or_fail (REG_TYPE_R_32);
-         break;
-
        case AARCH64_OPND_Rsz:
        case AARCH64_OPND_Rsz2:
        case AARCH64_OPND_Rd:
index a1320817f8b5d9066f8f15fd8100ab65e0040a1f..cbae41b19114c51f0e27628cd22f16da3626eb52 100644 (file)
@@ -672,3 +672,83 @@ Disassembly of section \.text:
 .*:    e2801be4        ldursw  x4, \[sp, #1\]
 .*:    e2810be4        ldursw  x4, \[sp, #16\]
 .*:    e28ffbe4        ldursw  x4, \[sp, #255\]
+.*:    427ffd9f        ldar    wzr, \[x12\]
+.*:    427fffff        ldar    wzr, \[sp\]
+.*:    423ffd9f        stlr    wzr, \[x12\]
+.*:    423fffff        stlr    wzr, \[sp\]
+.*:    427f7d9f        ldarb   wzr, \[x12\]
+.*:    427f7fff        ldarb   wzr, \[sp\]
+.*:    423f7d9f        stlrb   wzr, \[x12\]
+.*:    423f7fff        stlrb   wzr, \[sp\]
+.*:    8260099f        ldr     wzr, \[x12\]
+.*:    8260499f        ldr     wzr, \[x12, #16\]
+.*:    82ea63ff        ldr     wzr, \[sp, x10\]
+.*:    82600d9f        ldr     xzr, \[x12\]
+.*:    82602d9f        ldr     xzr, \[x12, #16\]
+.*:    82ea67ff        ldr     xzr, \[sp, x10\]
+.*:    8240099f        str     wzr, \[x12\]
+.*:    8240499f        str     wzr, \[x12, #16\]
+.*:    82aa63ff        str     wzr, \[sp, x10\]
+.*:    82400d9f        str     xzr, \[x12\]
+.*:    82402d9f        str     xzr, \[x12, #16\]
+.*:    82aa67ff        str     xzr, \[sp, x10\]
+.*:    e280059f        ldur    wzr, \[x12\]
+.*:    e281059f        ldur    wzr, \[x12, #16\]
+.*:    e28017ff        ldur    wzr, \[sp, #1\]
+.*:    e2c0059f        ldur    xzr, \[x12\]
+.*:    e2c1059f        ldur    xzr, \[x12, #16\]
+.*:    e2c017ff        ldur    xzr, \[sp, #1\]
+.*:    e280019f        stur    wzr, \[x12\]
+.*:    e281019f        stur    wzr, \[x12, #16\]
+.*:    e28013ff        stur    wzr, \[sp, #1\]
+.*:    e2c0019f        stur    xzr, \[x12\]
+.*:    e2c1019f        stur    xzr, \[x12, #16\]
+.*:    e2c013ff        stur    xzr, \[sp, #1\]
+.*:    8260059f        ldrb    wzr, \[x12\]
+.*:    8261059f        ldrb    wzr, \[x12, #16\]
+.*:    82ca63ff        ldrb    wzr, \[sp, x10\]
+.*:    e2000d9f        ldursb  wzr, \[x12\]
+.*:    e2010d9f        ldursb  wzr, \[x12, #16\]
+.*:    82ca67ff        ldrsb   wzr, \[sp, x10\]
+.*:    8240059f        strb    wzr, \[x12\]
+.*:    8241059f        strb    wzr, \[x12, #16\]
+.*:    828a63ff        strb    wzr, \[sp, x10\]
+.*:    e200099f        ldursb  xzr, \[x12\]
+.*:    e201099f        ldursb  xzr, \[x12, #16\]
+.*:    828a67ff        ldrsb   xzr, \[sp, x10\]
+.*:    e200059f        ldurb   wzr, \[x12\]
+.*:    e201059f        ldurb   wzr, \[x12, #16\]
+.*:    e20017ff        ldurb   wzr, \[sp, #1\]
+.*:    e2000d9f        ldursb  wzr, \[x12\]
+.*:    e2010d9f        ldursb  wzr, \[x12, #16\]
+.*:    e2001fff        ldursb  wzr, \[sp, #1\]
+.*:    e200019f        sturb   wzr, \[x12\]
+.*:    e201019f        sturb   wzr, \[x12, #16\]
+.*:    e20013ff        sturb   wzr, \[sp, #1\]
+.*:    e200099f        ldursb  xzr, \[x12\]
+.*:    e201099f        ldursb  xzr, \[x12, #16\]
+.*:    e2001bff        ldursb  xzr, \[sp, #1\]
+.*:    e240059f        ldurh   wzr, \[x12\]
+.*:    e241059f        ldurh   wzr, \[x12, #16\]
+.*:    82ca6fff        ldrh    wzr, \[sp, x10\]
+.*:    e2400d9f        ldursh  wzr, \[x12\]
+.*:    e2410d9f        ldursh  wzr, \[x12, #16\]
+.*:    82ca6bff        ldrsh   wzr, \[sp, x10\]
+.*:    e240019f        sturh   wzr, \[x12\]
+.*:    e241019f        sturh   wzr, \[x12, #16\]
+.*:    828a6fff        strh    wzr, \[sp, x10\]
+.*:    e240099f        ldursh  xzr, \[x12\]
+.*:    e241099f        ldursh  xzr, \[x12, #16\]
+.*:    828a6bff        ldrsh   xzr, \[sp, x10\]
+.*:    e240059f        ldurh   wzr, \[x12\]
+.*:    e241059f        ldurh   wzr, \[x12, #16\]
+.*:    e24017ff        ldurh   wzr, \[sp, #1\]
+.*:    e2400d9f        ldursh  wzr, \[x12\]
+.*:    e2410d9f        ldursh  wzr, \[x12, #16\]
+.*:    e2401fff        ldursh  wzr, \[sp, #1\]
+.*:    e240019f        sturh   wzr, \[x12\]
+.*:    e241019f        sturh   wzr, \[x12, #16\]
+.*:    e24013ff        sturh   wzr, \[sp, #1\]
+.*:    e240099f        ldursh  xzr, \[x12\]
+.*:    e241099f        ldursh  xzr, \[x12, #16\]
+.*:    e2401bff        ldursh  xzr, \[sp, #1\]
index 28066d9d953d38f828076afa04099fd05f2ce310..73c46b92ca40f4c8ef585591d6f6ef3d85b0f3ef 100644 (file)
@@ -671,3 +671,83 @@ Disassembly of section \.text:
 .*:    e2801be4        ldursw  x4, \[csp, #1\]
 .*:    e2810be4        ldursw  x4, \[csp, #16\]
 .*:    e28ffbe4        ldursw  x4, \[csp, #255\]
+.*:    427ffebf        ldar    wzr, \[c21\]
+.*:    427fffff        ldar    wzr, \[csp\]
+.*:    423ffebf        stlr    wzr, \[c21\]
+.*:    423fffff        stlr    wzr, \[csp\]
+.*:    427f7ebf        ldarb   wzr, \[c21\]
+.*:    427f7fff        ldarb   wzr, \[csp\]
+.*:    423f7ebf        stlrb   wzr, \[c21\]
+.*:    423f7fff        stlrb   wzr, \[csp\]
+.*:    82600abf        ldr     wzr, \[c21\]
+.*:    82604abf        ldr     wzr, \[c21, #16\]
+.*:    82ea63ff        ldr     wzr, \[csp, x10\]
+.*:    82600ebf        ldr     xzr, \[c21\]
+.*:    82602ebf        ldr     xzr, \[c21, #16\]
+.*:    82ea67ff        ldr     xzr, \[csp, x10\]
+.*:    82400abf        str     wzr, \[c21\]
+.*:    82404abf        str     wzr, \[c21, #16\]
+.*:    82aa63ff        str     wzr, \[csp, x10\]
+.*:    82400ebf        str     xzr, \[c21\]
+.*:    82402ebf        str     xzr, \[c21, #16\]
+.*:    82aa67ff        str     xzr, \[csp, x10\]
+.*:    e28006bf        ldur    wzr, \[c21\]
+.*:    e28106bf        ldur    wzr, \[c21, #16\]
+.*:    e28017ff        ldur    wzr, \[csp, #1\]
+.*:    e2c006bf        ldur    xzr, \[c21\]
+.*:    e2c106bf        ldur    xzr, \[c21, #16\]
+.*:    e2c017ff        ldur    xzr, \[csp, #1\]
+.*:    e28002bf        stur    wzr, \[c21\]
+.*:    e28102bf        stur    wzr, \[c21, #16\]
+.*:    e28013ff        stur    wzr, \[csp, #1\]
+.*:    e2c002bf        stur    xzr, \[c21\]
+.*:    e2c102bf        stur    xzr, \[c21, #16\]
+.*:    e2c013ff        stur    xzr, \[csp, #1\]
+.*:    826006bf        ldrb    wzr, \[c21\]
+.*:    826106bf        ldrb    wzr, \[c21, #16\]
+.*:    82ca63ff        ldrb    wzr, \[csp, x10\]
+.*:    e2000ebf        ldursb  wzr, \[c21\]
+.*:    e2010ebf        ldursb  wzr, \[c21, #16\]
+.*:    82ca67ff        ldrsb   wzr, \[csp, x10\]
+.*:    824006bf        strb    wzr, \[c21\]
+.*:    824106bf        strb    wzr, \[c21, #16\]
+.*:    828a63ff        strb    wzr, \[csp, x10\]
+.*:    e2000abf        ldursb  xzr, \[c21\]
+.*:    e2010abf        ldursb  xzr, \[c21, #16\]
+.*:    828a67ff        ldrsb   xzr, \[csp, x10\]
+.*:    e20006bf        ldurb   wzr, \[c21\]
+.*:    e20106bf        ldurb   wzr, \[c21, #16\]
+.*:    e20017ff        ldurb   wzr, \[csp, #1\]
+.*:    e2000ebf        ldursb  wzr, \[c21\]
+.*:    e2010ebf        ldursb  wzr, \[c21, #16\]
+.*:    e2001fff        ldursb  wzr, \[csp, #1\]
+.*:    e20002bf        sturb   wzr, \[c21\]
+.*:    e20102bf        sturb   wzr, \[c21, #16\]
+.*:    e20013ff        sturb   wzr, \[csp, #1\]
+.*:    e2000abf        ldursb  xzr, \[c21\]
+.*:    e2010abf        ldursb  xzr, \[c21, #16\]
+.*:    e2001bff        ldursb  xzr, \[csp, #1\]
+.*:    e24006bf        ldurh   wzr, \[c21\]
+.*:    e24106bf        ldurh   wzr, \[c21, #16\]
+.*:    82ca6fff        ldrh    wzr, \[csp, x10\]
+.*:    e2400ebf        ldursh  wzr, \[c21\]
+.*:    e2410ebf        ldursh  wzr, \[c21, #16\]
+.*:    82ca6bff        ldrsh   wzr, \[csp, x10\]
+.*:    e24002bf        sturh   wzr, \[c21\]
+.*:    e24102bf        sturh   wzr, \[c21, #16\]
+.*:    828a6fff        strh    wzr, \[csp, x10\]
+.*:    e2400abf        ldursh  xzr, \[c21\]
+.*:    e2410abf        ldursh  xzr, \[c21, #16\]
+.*:    828a6bff        ldrsh   xzr, \[csp, x10\]
+.*:    e24006bf        ldurh   wzr, \[c21\]
+.*:    e24106bf        ldurh   wzr, \[c21, #16\]
+.*:    e24017ff        ldurh   wzr, \[csp, #1\]
+.*:    e2400ebf        ldursh  wzr, \[c21\]
+.*:    e2410ebf        ldursh  wzr, \[c21, #16\]
+.*:    e2401fff        ldursh  wzr, \[csp, #1\]
+.*:    e24002bf        sturh   wzr, \[c21\]
+.*:    e24102bf        sturh   wzr, \[c21, #16\]
+.*:    e24013ff        sturh   wzr, \[csp, #1\]
+.*:    e2400abf        ldursh  xzr, \[c21\]
+.*:    e2410abf        ldursh  xzr, \[c21, #16\]
+.*:    e2401bff        ldursh  xzr, \[csp, #1\]
index 998d9c3d1f26b751d64fbe2de8a4aa1780c4f7ec..0d00303d6d1f3e19840fb0bb0d5f5a4ae2f22174 100644 (file)
@@ -300,3 +300,45 @@ morello_alt_uimm_sub ALTSP
 
 morello_alt_narrow_simm9 ALTVAREG
 morello_alt_narrow_simm9 ALTSP
+
+       .macro morello_alt_zero_basic, op, reg
+         \op \reg, [ALTVAREG]
+         \op \reg, [ALTSP]
+       .endm
+
+       .macro morello_alt_zero_general, op, reg
+         \op \reg, [ALTVAREG]
+         \op \reg, [ALTVAREG, #16]
+         \op \reg, [ALTSP, x10]
+       .endm
+
+       .macro morello_alt_zero_unscaled, op, reg
+         \op \reg, [ALTVAREG]
+         \op \reg, [ALTVAREG, #16]
+         \op \reg, [ALTSP, #1]
+       .endm
+
+       .irp op, ldar, stlr, ldarb, stlrb
+         morello_alt_zero_basic \op, wzr
+       .endr
+
+       .irp op, ldr, str
+         morello_alt_zero_general \op, wzr
+         morello_alt_zero_general \op, xzr
+       .endr
+
+       .irp op, ldur, stur
+         morello_alt_zero_unscaled \op, wzr
+         morello_alt_zero_unscaled \op, xzr
+       .endr
+
+       .irp size, b, h
+         .irp op, ldr\size, ldrs\size, str\size
+           morello_alt_zero_general \op, wzr
+         .endr
+         morello_alt_zero_general ldrs\size, xzr
+         .irp op, ldur\size, ldurs\size, stur\size
+           morello_alt_zero_unscaled \op, wzr
+         .endr
+         morello_alt_zero_unscaled ldurs\size, xzr
+       .endr
index 541ac9c2e0eb74ea25483856e614464be381d1a4..3a1e2987710599e1fd7585df73b97e1062045537 100644 (file)
@@ -252,8 +252,6 @@ enum aarch64_opnd
   AARCH64_OPND_Rn,     /* Integer register as source.  */
   AARCH64_OPND_Rm,     /* Integer register as source.  */
   AARCH64_OPND_Rt,     /* Integer register used in ld/st instructions.  */
-  AARCH64_OPND_Wt,     /* 32-bit integer register used in ld/st
-                          instructions.  */
   AARCH64_OPND_Rt2,    /* Integer register used in ld/st pair instructions.  */
   AARCH64_OPND_Rt_LS64,        /* Integer register used in LS64 instructions.  */
   AARCH64_OPND_Rt_SP,  /* Integer Rt or SP used in STG instructions.  */
index 9966e60086e9e6302b4e4f02a7eb8ec4eea5eed4..dc3dd9d00bbaec24ff1c2cba5d0f30b9688843b9 100644 (file)
@@ -681,11 +681,11 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 11:
     case 12:
     case 13:
-    case 14:
+    case 17:
     case 18:
     case 19:
     case 20:
-    case 21:
+    case 22:
     case 23:
     case 24:
     case 25:
@@ -696,7 +696,7 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 30:
     case 31:
     case 32:
-    case 33:
+    case 168:
     case 169:
     case 170:
     case 171:
@@ -706,7 +706,7 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 175:
     case 176:
     case 177:
-    case 178:
+    case 192:
     case 193:
     case 194:
     case 195:
@@ -715,12 +715,12 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 198:
     case 199:
     case 200:
-    case 201:
-    case 207:
-    case 210:
+    case 206:
+    case 209:
+    case 211:
     case 212:
-    case 213:
-    case 216:
+    case 215:
+    case 227:
     case 228:
     case 229:
     case 230:
@@ -729,34 +729,34 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 233:
     case 234:
     case 235:
-    case 236:
-    case 257:
+    case 256:
       return aarch64_ins_regno (self, info, code, inst, errors);
-    case 16:
-    case 240:
+    case 15:
+    case 239:
       return aarch64_ins_reg_extended (self, info, code, inst, errors);
-    case 17:
+    case 16:
       return aarch64_ins_reg_shifted (self, info, code, inst, errors);
-    case 22:
+    case 21:
       return aarch64_ins_ft (self, info, code, inst, errors);
+    case 33:
     case 34:
     case 35:
     case 36:
-    case 37:
-    case 224:
+    case 223:
       return aarch64_ins_reglane (self, info, code, inst, errors);
-    case 38:
+    case 37:
       return aarch64_ins_reglist (self, info, code, inst, errors);
-    case 39:
+    case 38:
       return aarch64_ins_ldst_reglist (self, info, code, inst, errors);
-    case 40:
+    case 39:
       return aarch64_ins_ldst_reglist_r (self, info, code, inst, errors);
-    case 41:
+    case 40:
       return aarch64_ins_ldst_elemlist (self, info, code, inst, errors);
+    case 41:
     case 42:
     case 43:
     case 44:
-    case 45:
+    case 54:
     case 55:
     case 56:
     case 57:
@@ -773,14 +773,14 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 68:
     case 69:
     case 70:
-    case 71:
+    case 81:
     case 82:
     case 83:
     case 84:
     case 85:
-    case 86:
-    case 166:
-    case 168:
+    case 165:
+    case 167:
+    case 184:
     case 185:
     case 186:
     case 187:
@@ -788,109 +788,109 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 189:
     case 190:
     case 191:
-    case 192:
-    case 217:
-    case 223:
-    case 244:
-    case 252:
-    case 256:
+    case 216:
+    case 222:
+    case 243:
+    case 251:
+    case 255:
       return aarch64_ins_imm (self, info, code, inst, errors);
+    case 45:
     case 46:
-    case 47:
       return aarch64_ins_advsimd_imm_shift (self, info, code, inst, errors);
+    case 47:
     case 48:
     case 49:
-    case 50:
       return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors);
-    case 54:
-    case 156:
+    case 53:
+    case 155:
       return aarch64_ins_fpimm (self, info, code, inst, errors);
-    case 72:
-    case 164:
+    case 71:
+    case 163:
       return aarch64_ins_limm (self, info, code, inst, errors);
-    case 73:
-    case 243:
-    case 245:
+    case 72:
+    case 242:
+    case 244:
       return aarch64_ins_aimm (self, info, code, inst, errors);
-    case 74:
+    case 73:
       return aarch64_ins_imm_half (self, info, code, inst, errors);
-    case 75:
+    case 74:
       return aarch64_ins_fbits (self, info, code, inst, errors);
+    case 76:
     case 77:
+    case 160:
+      return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
     case 78:
+    case 159:
     case 161:
-      return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
-    case 79:
-    case 160:
-    case 162:
       return aarch64_ins_imm_rotate1 (self, info, code, inst, errors);
+    case 79:
     case 80:
-    case 81:
       return aarch64_ins_cond (self, info, code, inst, errors);
-    case 87:
-    case 96:
-    case 249:
+    case 86:
+    case 95:
+    case 248:
       return aarch64_ins_addr_simple (self, info, code, inst, errors);
-    case 88:
-    case 254:
+    case 87:
+    case 253:
       return aarch64_ins_addr_regoff (self, info, code, inst, errors);
+    case 88:
     case 89:
     case 90:
-    case 91:
-    case 93:
-    case 95:
-    case 248:
+    case 92:
+    case 94:
+    case 247:
+    case 249:
     case 250:
-    case 251:
-    case 255:
+    case 254:
       return aarch64_ins_addr_simm (self, info, code, inst, errors);
-    case 92:
+    case 91:
       return aarch64_ins_addr_simm10 (self, info, code, inst, errors);
-    case 94:
-    case 253:
+    case 93:
+    case 252:
       return aarch64_ins_addr_uimm (self, info, code, inst, errors);
-    case 97:
+    case 96:
       return aarch64_ins_addr_offset (self, info, code, inst, errors);
-    case 98:
+    case 97:
       return aarch64_ins_simd_addr_post (self, info, code, inst, errors);
-    case 99:
+    case 98:
       return aarch64_ins_sysreg (self, info, code, inst, errors);
-    case 100:
+    case 99:
       return aarch64_ins_pstatefield (self, info, code, inst, errors);
+    case 100:
     case 101:
     case 102:
     case 103:
     case 104:
-    case 105:
       return aarch64_ins_sysins_op (self, info, code, inst, errors);
-    case 106:
-    case 108:
-      return aarch64_ins_barrier (self, info, code, inst, errors);
+    case 105:
     case 107:
+      return aarch64_ins_barrier (self, info, code, inst, errors);
+    case 106:
       return aarch64_ins_barrier_dsb_nxs (self, info, code, inst, errors);
-    case 109:
+    case 108:
       return aarch64_ins_prfop (self, info, code, inst, errors);
-    case 110:
+    case 109:
       return aarch64_ins_none (self, info, code, inst, errors);
-    case 111:
+    case 110:
       return aarch64_ins_hint (self, info, code, inst, errors);
+    case 111:
     case 112:
-    case 113:
       return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors);
+    case 113:
     case 114:
     case 115:
     case 116:
-    case 117:
       return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors);
-    case 118:
+    case 117:
       return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors);
-    case 119:
+    case 118:
       return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors);
+    case 119:
     case 120:
     case 121:
     case 122:
-    case 123:
       return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors);
+    case 123:
     case 124:
     case 125:
     case 126:
@@ -905,8 +905,8 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 135:
     case 136:
     case 137:
-    case 138:
       return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors);
+    case 138:
     case 139:
     case 140:
     case 141:
@@ -914,78 +914,77 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 143:
     case 144:
     case 145:
-    case 146:
       return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors);
+    case 146:
     case 147:
     case 148:
     case 149:
-    case 150:
       return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors);
-    case 151:
+    case 150:
       return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors);
-    case 152:
+    case 151:
       return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors);
-    case 153:
+    case 152:
       return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors);
-    case 154:
+    case 153:
       return aarch64_ins_sve_aimm (self, info, code, inst, errors);
-    case 155:
+    case 154:
       return aarch64_ins_sve_asimm (self, info, code, inst, errors);
-    case 157:
+    case 156:
       return aarch64_ins_sve_float_half_one (self, info, code, inst, errors);
-    case 158:
+    case 157:
       return aarch64_ins_sve_float_half_two (self, info, code, inst, errors);
-    case 159:
+    case 158:
       return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors);
-    case 163:
+    case 162:
       return aarch64_ins_inv_limm (self, info, code, inst, errors);
-    case 165:
+    case 164:
       return aarch64_ins_sve_limm_mov (self, info, code, inst, errors);
-    case 167:
+    case 166:
       return aarch64_ins_sve_scale (self, info, code, inst, errors);
+    case 178:
     case 179:
     case 180:
-    case 181:
       return aarch64_ins_sve_shlimm (self, info, code, inst, errors);
+    case 181:
     case 182:
     case 183:
-    case 184:
       return aarch64_ins_sve_shrimm (self, info, code, inst, errors);
+    case 201:
     case 202:
     case 203:
     case 204:
     case 205:
-    case 206:
       return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
-    case 208:
+    case 207:
       return aarch64_ins_sve_index (self, info, code, inst, errors);
-    case 209:
-    case 211:
+    case 208:
+    case 210:
       return aarch64_ins_sve_reglist (self, info, code, inst, errors);
+    case 213:
     case 214:
-    case 215:
-    case 218:
+    case 217:
       return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
-    case 219:
+    case 218:
       return aarch64_ins_sme_za_array (self, info, code, inst, errors);
-    case 220:
+    case 219:
       return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors);
-    case 221:
+    case 220:
       return aarch64_ins_sme_sm_za (self, info, code, inst, errors);
-    case 222:
+    case 221:
       return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors);
+    case 224:
     case 225:
     case 226:
-    case 227:
       return aarch64_ins_x0_to_x30 (self, info, code, inst, errors);
+    case 236:
     case 237:
-    case 238:
       return aarch64_ins_regsz (self, info, code, inst, errors);
-    case 239:
+    case 238:
       return aarch64_ins_fregsz (self, info, code, inst, errors);
-    case 246:
+    case 245:
       return aarch64_ins_perm (self, info, code, inst, errors);
-    case 247:
+    case 246:
       return aarch64_ins_form (self, info, code, inst, errors);
     default: assert (0); abort ();
     }
index 8874986b39c9189605b76348877ecb1b70fb54c2..98c75eabb6f4a559367411b5bc409c545109b34e 100644 (file)
@@ -27508,14 +27508,14 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 7:
     case 8:
     case 9:
-    case 10:
+    case 11:
     case 12:
     case 13:
-    case 14:
+    case 17:
     case 18:
     case 19:
     case 20:
-    case 21:
+    case 22:
     case 23:
     case 24:
     case 25:
@@ -27526,7 +27526,7 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 30:
     case 31:
     case 32:
-    case 33:
+    case 168:
     case 169:
     case 170:
     case 171:
@@ -27536,7 +27536,7 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 175:
     case 176:
     case 177:
-    case 178:
+    case 192:
     case 193:
     case 194:
     case 195:
@@ -27545,12 +27545,12 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 198:
     case 199:
     case 200:
-    case 201:
-    case 207:
-    case 210:
+    case 206:
+    case 209:
+    case 211:
     case 212:
-    case 213:
-    case 216:
+    case 215:
+    case 227:
     case 228:
     case 229:
     case 230:
@@ -27559,38 +27559,38 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 233:
     case 234:
     case 235:
-    case 236:
       return aarch64_ext_regno (self, info, code, inst, errors);
-    case 11:
-    case 257:
+    case 10:
+    case 256:
       return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
-    case 15:
+    case 14:
       return aarch64_ext_regno_pair (self, info, code, inst, errors);
-    case 16:
-    case 240:
+    case 15:
+    case 239:
       return aarch64_ext_reg_extended (self, info, code, inst, errors);
-    case 17:
+    case 16:
       return aarch64_ext_reg_shifted (self, info, code, inst, errors);
-    case 22:
+    case 21:
       return aarch64_ext_ft (self, info, code, inst, errors);
+    case 33:
     case 34:
     case 35:
     case 36:
-    case 37:
-    case 224:
+    case 223:
       return aarch64_ext_reglane (self, info, code, inst, errors);
-    case 38:
+    case 37:
       return aarch64_ext_reglist (self, info, code, inst, errors);
-    case 39:
+    case 38:
       return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
-    case 40:
+    case 39:
       return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
-    case 41:
+    case 40:
       return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
+    case 41:
     case 42:
     case 43:
     case 44:
-    case 45:
+    case 54:
     case 55:
     case 56:
     case 57:
@@ -27607,14 +27607,14 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 68:
     case 69:
     case 70:
-    case 71:
+    case 81:
     case 82:
     case 83:
     case 84:
     case 85:
-    case 86:
-    case 166:
-    case 168:
+    case 165:
+    case 167:
+    case 184:
     case 185:
     case 186:
     case 187:
@@ -27622,109 +27622,109 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 189:
     case 190:
     case 191:
-    case 192:
-    case 217:
-    case 223:
-    case 244:
-    case 252:
-    case 256:
+    case 216:
+    case 222:
+    case 243:
+    case 251:
+    case 255:
       return aarch64_ext_imm (self, info, code, inst, errors);
+    case 45:
     case 46:
-    case 47:
       return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
+    case 47:
     case 48:
     case 49:
-    case 50:
       return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
-    case 51:
+    case 50:
       return aarch64_ext_shll_imm (self, info, code, inst, errors);
-    case 54:
-    case 156:
+    case 53:
+    case 155:
       return aarch64_ext_fpimm (self, info, code, inst, errors);
-    case 72:
-    case 164:
+    case 71:
+    case 163:
       return aarch64_ext_limm (self, info, code, inst, errors);
-    case 73:
+    case 72:
       return aarch64_ext_aimm (self, info, code, inst, errors);
-    case 74:
+    case 73:
       return aarch64_ext_imm_half (self, info, code, inst, errors);
-    case 75:
+    case 74:
       return aarch64_ext_fbits (self, info, code, inst, errors);
+    case 76:
     case 77:
+    case 160:
+      return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
     case 78:
+    case 159:
     case 161:
-      return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
-    case 79:
-    case 160:
-    case 162:
       return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
+    case 79:
     case 80:
-    case 81:
       return aarch64_ext_cond (self, info, code, inst, errors);
-    case 87:
-    case 96:
-    case 249:
+    case 86:
+    case 95:
+    case 248:
       return aarch64_ext_addr_simple (self, info, code, inst, errors);
-    case 88:
-    case 254:
+    case 87:
+    case 253:
       return aarch64_ext_addr_regoff (self, info, code, inst, errors);
+    case 88:
     case 89:
     case 90:
-    case 91:
-    case 93:
-    case 95:
-    case 248:
+    case 92:
+    case 94:
+    case 247:
+    case 249:
     case 250:
-    case 251:
-    case 255:
+    case 254:
       return aarch64_ext_addr_simm (self, info, code, inst, errors);
-    case 92:
+    case 91:
       return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
-    case 94:
-    case 253:
+    case 93:
+    case 252:
       return aarch64_ext_addr_uimm (self, info, code, inst, errors);
-    case 97:
+    case 96:
       return aarch64_ext_addr_offset (self, info, code, inst, errors);
-    case 98:
+    case 97:
       return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
-    case 99:
+    case 98:
       return aarch64_ext_sysreg (self, info, code, inst, errors);
-    case 100:
+    case 99:
       return aarch64_ext_pstatefield (self, info, code, inst, errors);
+    case 100:
     case 101:
     case 102:
     case 103:
     case 104:
-    case 105:
       return aarch64_ext_sysins_op (self, info, code, inst, errors);
-    case 106:
-    case 108:
-      return aarch64_ext_barrier (self, info, code, inst, errors);
+    case 105:
     case 107:
+      return aarch64_ext_barrier (self, info, code, inst, errors);
+    case 106:
       return aarch64_ext_barrier_dsb_nxs (self, info, code, inst, errors);
-    case 109:
+    case 108:
       return aarch64_ext_prfop (self, info, code, inst, errors);
-    case 110:
+    case 109:
       return aarch64_ext_none (self, info, code, inst, errors);
-    case 111:
+    case 110:
       return aarch64_ext_hint (self, info, code, inst, errors);
+    case 111:
     case 112:
-    case 113:
       return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
+    case 113:
     case 114:
     case 115:
     case 116:
-    case 117:
       return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
-    case 118:
+    case 117:
       return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
-    case 119:
+    case 118:
       return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
+    case 119:
     case 120:
     case 121:
     case 122:
-    case 123:
       return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
+    case 123:
     case 124:
     case 125:
     case 126:
@@ -27739,8 +27739,8 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 135:
     case 136:
     case 137:
-    case 138:
       return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
+    case 138:
     case 139:
     case 140:
     case 141:
@@ -27748,85 +27748,84 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 143:
     case 144:
     case 145:
-    case 146:
       return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
+    case 146:
     case 147:
     case 148:
     case 149:
-    case 150:
       return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
-    case 151:
+    case 150:
       return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
-    case 152:
+    case 151:
       return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
-    case 153:
+    case 152:
       return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
-    case 154:
+    case 153:
       return aarch64_ext_sve_aimm (self, info, code, inst, errors);
-    case 155:
+    case 154:
       return aarch64_ext_sve_asimm (self, info, code, inst, errors);
-    case 157:
+    case 156:
       return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
-    case 158:
+    case 157:
       return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
-    case 159:
+    case 158:
       return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
-    case 163:
+    case 162:
       return aarch64_ext_inv_limm (self, info, code, inst, errors);
-    case 165:
+    case 164:
       return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
-    case 167:
+    case 166:
       return aarch64_ext_sve_scale (self, info, code, inst, errors);
+    case 178:
     case 179:
     case 180:
-    case 181:
       return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
+    case 181:
     case 182:
     case 183:
-    case 184:
       return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
+    case 201:
     case 202:
     case 203:
     case 204:
     case 205:
-    case 206:
       return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
-    case 208:
+    case 207:
       return aarch64_ext_sve_index (self, info, code, inst, errors);
-    case 209:
-    case 211:
+    case 208:
+    case 210:
       return aarch64_ext_sve_reglist (self, info, code, inst, errors);
+    case 213:
     case 214:
-    case 215:
-    case 218:
+    case 217:
       return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
-    case 219:
+    case 218:
       return aarch64_ext_sme_za_array (self, info, code, inst, errors);
-    case 220:
+    case 219:
       return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
-    case 221:
+    case 220:
       return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
-    case 222:
+    case 221:
       return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
+    case 224:
     case 225:
     case 226:
-    case 227:
       return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
+    case 236:
     case 237:
-    case 238:
       return aarch64_ext_regsz (self, info, code, inst, errors);
-    case 239:
+    case 238:
       return aarch64_ext_fregsz (self, info, code, inst, errors);
+    case 240:
     case 241:
-    case 242:
       return aarch64_ext_a64c_immv (self, info, code, inst, errors);
-    case 243:
+    case 242:
       return aarch64_ext_a64c_aimm (self, info, code, inst, errors);
-    case 245:
+    case 244:
       return aarch64_ext_a64c_imm6 (self, info, code, inst, errors);
-    case 246:
+    case 245:
       return aarch64_ext_perm (self, info, code, inst, errors);
-    case 247:
+    case 246:
       return aarch64_ext_form (self, info, code, inst, errors);
     default: assert (0); abort ();
     }
index 443d327e05116fed63996b05cd5b683e987b74b2..f38ed21f776f052ee5455fe8914b450f449060f8 100644 (file)
@@ -29,7 +29,6 @@ const struct aarch64_operand aarch64_operands[] =
   {AARCH64_OPND_CLASS_INT_REG, "Rn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "an integer register"},
   {AARCH64_OPND_CLASS_INT_REG, "Rm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "an integer register"},
   {AARCH64_OPND_CLASS_INT_REG, "Rt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "an integer register"},
-  {AARCH64_OPND_CLASS_INT_REG, "Wt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "a 32-bit integer register"},
   {AARCH64_OPND_CLASS_INT_REG, "Rt2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt2}, "an integer register"},
   {AARCH64_OPND_CLASS_INT_REG, "Rt_LS64", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "an integer register"},
   {AARCH64_OPND_CLASS_INT_REG, "Rt_SP", OPD_F_MAYBE_SP | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "an integer or stack pointer register"},
index 00f9d29ef07a6f0ace3f58e261b71f8c5d472f5e..c5efca3b518e38303cceba85f72f4762aa2715f0 100644 (file)
@@ -3566,7 +3566,6 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
     case AARCH64_OPND_Rn:
     case AARCH64_OPND_Rm:
     case AARCH64_OPND_Rt:
-    case AARCH64_OPND_Wt:
     case AARCH64_OPND_Rt2:
     case AARCH64_OPND_Rs:
     case AARCH64_OPND_Ra:
index f099fa9bfff1b0ccf04d687ae6fd6ae94751e307..6f1a45496af07a040f9ce04e0d8aa8658ec333f6 100644 (file)
@@ -4291,11 +4291,11 @@ const struct aarch64_opcode aarch64_opcode_table[] =
 
   /* Load/stores with alternate base, i.e. [<Cn|CSP>] in A64 mode and [<Xn|SP>] in C64 mode.  */
   A64C_INSN ("ldar", 0x425f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Cat, CAPADDR_SIMPLE), QL2_A64C_CA_CAPADDR, 0),
-  A64C_INSN ("ldar", 0x427ffc00, 0xfffffc00, ldstexcl, 0, OP2 (Wt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
-  A64C_INSN ("ldarb", 0x427f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Wt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
+  A64C_INSN ("ldar", 0x427ffc00, 0xfffffc00, ldstexcl, 0, OP2 (Rt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
+  A64C_INSN ("ldarb", 0x427f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Rt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
   A64C_INSN ("stlr", 0x421f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Cat, CAPADDR_SIMPLE), QL2_A64C_CA_ADDR, 0),
-  A64C_INSN ("stlr", 0x423ffc00, 0xfffffc00, ldstexcl, 0, OP2 (Wt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
-  A64C_INSN ("stlrb", 0x423f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Wt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
+  A64C_INSN ("stlr", 0x423ffc00, 0xfffffc00, ldstexcl, 0, OP2 (Rt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
+  A64C_INSN ("stlrb", 0x423f7c00, 0xfffffc00, ldstexcl, 0, OP2 (Rt, CAPADDR_SIMPLE), QL2_A64C_W_CAPADDR, 0),
   A64C_INSN ("ldr", 0x82600000, 0xffe00c00, ldst_altbase, OP_LDR_POS_AC, OP2 (Cat, CAPADDR_UIMM9), QL2_A64C_CA_CAPADDR, 0),
   A64C_INSN ("ldr", 0x82600800, 0xffe00800, ldst_altbase, OP_LDR_POS_AX, OP2 (Rsz, CAPADDR_UIMM9), QL2_A64C_R_CAPADDR, 0),
   A64C_INSN ("ldr", 0xc2e00c00, 0xffe00c00, ldst_altbase, 0, OP2 (Cat, CAPADDR_REGOFF), QL2_A64C_CA_CAPADDR, 0),
@@ -4321,38 +4321,38 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   A64C_INSN ("stur", 0xe2200000, 0xff200c00, ldst_altbase, OP_STURFP_POS_A, OP2 (Fsz, CAPADDR_SIMM9), QL_S_2SAME, F_HAS_ALIAS | F_P1),
   A64C_INSN ("stur", 0xe2200800, 0xffe00c00, ldst_altbase, OP_STURFPQ_POS_A, OP2 (St, CAPADDR_SIMM9), QL_I2SAMEQ, F_HAS_ALIAS | F_P1),
 
-  A64C_INSN ("ldrb", 0x82600400, 0xffe00c00, ldst_altbase, OP_LDRB_POS_A, OP2 (Wt, CAPADDR_UIMM9), QL2_B_ADDR, F_NOSHIFT),
-  A64C_INSN ("ldrb", 0x82c00000, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
-  A64C_INSN ("strb", 0x82400400, 0xffe00c00, ldst_altbase, OP_STRB_POS_A, OP2 (Wt, CAPADDR_UIMM9), QL2_B_ADDR, F_NOSHIFT),
-  A64C_INSN ("strb", 0x82800000, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
+  A64C_INSN ("ldrb", 0x82600400, 0xffe00c00, ldst_altbase, OP_LDRB_POS_A, OP2 (Rt, CAPADDR_UIMM9), QL2_B_ADDR, F_NOSHIFT),
+  A64C_INSN ("ldrb", 0x82c00000, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
+  A64C_INSN ("strb", 0x82400400, 0xffe00c00, ldst_altbase, OP_STRB_POS_A, OP2 (Rt, CAPADDR_UIMM9), QL2_B_ADDR, F_NOSHIFT),
+  A64C_INSN ("strb", 0x82800000, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
 
-  A64C_INSN ("ldrsb", 0x82c00400, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
+  A64C_INSN ("ldrsb", 0x82c00400, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
   A64C_INSN ("ldrsb", 0x82800400, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_X_ADDR, 0),
-  A64C_INSN ("ldrsh", 0x82c00800, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
+  A64C_INSN ("ldrsh", 0x82c00800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_B_ADDR, 0),
   A64C_INSN ("ldrsh", 0x82800800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_X_ADDR, 0),
   /* These are aliases of LDURS[BHW]:  */
-  A64C_INSN ("ldrsb", 0xe2000c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, F_ALIAS),
+  A64C_INSN ("ldrsb", 0xe2000c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, F_ALIAS),
   A64C_INSN ("ldrsb", 0xe2000800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_ALIAS),
-  A64C_INSN ("ldrsh", 0xe2400c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, F_ALIAS),
+  A64C_INSN ("ldrsh", 0xe2400c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, F_ALIAS),
   A64C_INSN ("ldrsh", 0xe2400800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_ALIAS),
   A64C_INSN ("ldrsw", 0xe2800800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_ALIAS),
 
-  A64C_INSN ("ldursb", 0xe2000c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, F_HAS_ALIAS | F_P1),
+  A64C_INSN ("ldursb", 0xe2000c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, F_HAS_ALIAS | F_P1),
   A64C_INSN ("ldursb", 0xe2000800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_HAS_ALIAS | F_P1),
-  A64C_INSN ("ldursh", 0xe2400c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, F_HAS_ALIAS | F_P1),
+  A64C_INSN ("ldursh", 0xe2400c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, F_HAS_ALIAS | F_P1),
   A64C_INSN ("ldursh", 0xe2400800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_HAS_ALIAS | F_P1),
   A64C_INSN ("ldursw", 0xe2800800, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_X_ADDR, F_HAS_ALIAS | F_P1),
 
-  A64C_INSN ("ldrh", 0x82c00c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_H_ADDR, 0),
-  A64C_INSN ("strh", 0x82800c00, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_REGOFF), QL2_H_ADDR, 0),
+  A64C_INSN ("ldrh", 0x82c00c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_H_ADDR, 0),
+  A64C_INSN ("strh", 0x82800c00, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_REGOFF), QL2_H_ADDR, 0),
   /* These are aliases of LDURH and STURH:  */
-  A64C_INSN ("ldrh", 0xe2400400, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_H_ADDR, F_ALIAS),
-  A64C_INSN ("strh", 0xe2400000, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_H_ADDR, F_ALIAS),
+  A64C_INSN ("ldrh", 0xe2400400, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_H_ADDR, F_ALIAS),
+  A64C_INSN ("strh", 0xe2400000, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_H_ADDR, F_ALIAS),
 
-  A64C_INSN ("ldurb", 0xe2000400, 0xffe00c00, ldst_altbase, OP_LDURB_A, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, 0),
-  A64C_INSN ("sturb", 0xe2000000, 0xffe00c00, ldst_altbase, OP_STURB_A, OP2 (Wt, CAPADDR_SIMM9), QL2_B_ADDR, 0),
-  A64C_INSN ("ldurh", 0xe2400400, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_H_ADDR, F_HAS_ALIAS | F_P1),
-  A64C_INSN ("sturh", 0xe2400000, 0xffe00c00, ldst_altbase, 0, OP2 (Wt, CAPADDR_SIMM9), QL2_H_ADDR, F_HAS_ALIAS | F_P1),
+  A64C_INSN ("ldurb", 0xe2000400, 0xffe00c00, ldst_altbase, OP_LDURB_A, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, 0),
+  A64C_INSN ("sturb", 0xe2000000, 0xffe00c00, ldst_altbase, OP_STURB_A, OP2 (Rt, CAPADDR_SIMM9), QL2_B_ADDR, 0),
+  A64C_INSN ("ldurh", 0xe2400400, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_H_ADDR, F_HAS_ALIAS | F_P1),
+  A64C_INSN ("sturh", 0xe2400000, 0xffe00c00, ldst_altbase, 0, OP2 (Rt, CAPADDR_SIMM9), QL2_H_ADDR, F_HAS_ALIAS | F_P1),
 
   A64C_INSN ("ret", 0xc2c25000, 0xfffffc1f, a64c, 0, OP1 (Can), QL1_A64C_CA, F_OPD0_OPT | F_DEFAULT (30)),
   A64C_INSN ("retr", 0xc2c25003, 0xfffffc1f, a64c, 0, OP1 (Can), QL1_A64C_CA, 0),
@@ -5828,7 +5828,6 @@ const struct aarch64_opcode aarch64_opcode_table[] =
     Y(INT_REG, regno, "Rn", 0, F(FLD_Rn), "an integer register")       \
     Y(INT_REG, regno, "Rm", 0, F(FLD_Rm), "an integer register")       \
     Y(INT_REG, regno, "Rt", 0, F(FLD_Rt), "an integer register")       \
-    Y(INT_REG, regno, "Wt", 0, F(FLD_Rt), "a 32-bit integer register") \
     Y(INT_REG, regno, "Rt2", 0, F(FLD_Rt2), "an integer register")     \
     Y(INT_REG, regno, "Rt_LS64", 0, F(FLD_Rt), "an integer register")  \
     Y(INT_REG, regno, "Rt_SP", OPD_F_MAYBE_SP, F(FLD_Rt),              \