x86-64: bndmk, bndldx, and bndstx don't allow RIP-relative addressing
[binutils-gdb.git] / opcodes / aarch64-asm-2.c
index 5d5ec788140c1a291b9076f5f5e4d18ced861175..6908d0e2c7caf6cabe329eff501ad3a81b4a94b0 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright (C) 2012-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -66,8 +66,8 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
     case 22:   /* sub */
       value = 22;      /* --> sub.  */
       break;
-    case 26:   /* negs */
     case 25:   /* cmp */
+    case 26:   /* negs */
     case 24:   /* subs */
       value = 24;      /* --> subs.  */
       break;
@@ -422,155 +422,161 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
     case 1152: /* movz */
       value = 1152;    /* --> movz.  */
       break;
-    case 1191: /* autibsp */
-    case 1190: /* autibz */
-    case 1189: /* autiasp */
-    case 1188: /* autiaz */
-    case 1187: /* pacibsp */
-    case 1186: /* pacibz */
-    case 1185: /* paciasp */
-    case 1184: /* paciaz */
-    case 1171: /* psb */
-    case 1170: /* esb */
-    case 1169: /* autib1716 */
-    case 1168: /* autia1716 */
-    case 1167: /* pacib1716 */
-    case 1166: /* pacia1716 */
-    case 1165: /* xpaclri */
-    case 1164: /* sevl */
-    case 1163: /* sev */
-    case 1162: /* wfi */
-    case 1161: /* wfe */
-    case 1160: /* yield */
+    case 1194: /* autibsp */
+    case 1193: /* autibz */
+    case 1192: /* autiasp */
+    case 1191: /* autiaz */
+    case 1190: /* pacibsp */
+    case 1189: /* pacibz */
+    case 1188: /* paciasp */
+    case 1187: /* paciaz */
+    case 1172: /* psb */
+    case 1171: /* esb */
+    case 1170: /* autib1716 */
+    case 1169: /* autia1716 */
+    case 1168: /* pacib1716 */
+    case 1167: /* pacia1716 */
+    case 1166: /* xpaclri */
+    case 1165: /* sevl */
+    case 1164: /* sev */
+    case 1163: /* wfi */
+    case 1162: /* wfe */
+    case 1161: /* yield */
+    case 1160: /* csdb */
     case 1159: /* nop */
     case 1158: /* hint */
       value = 1158;    /* --> hint.  */
       break;
-    case 1180: /* tlbi */
-    case 1179: /* ic */
-    case 1178: /* dc */
-    case 1177: /* at */
-    case 1176: /* sys */
-      value = 1176;    /* --> sys.  */
+    case 1176: /* pssbb */
+    case 1175: /* ssbb */
+    case 1174: /* dsb */
+      value = 1174;    /* --> dsb.  */
       break;
-    case 1934: /* bic */
-    case 1239: /* and */
-      value = 1239;    /* --> and.  */
+    case 1183: /* tlbi */
+    case 1182: /* ic */
+    case 1181: /* dc */
+    case 1180: /* at */
+    case 1179: /* sys */
+      value = 1179;    /* --> sys.  */
       break;
-    case 1222: /* mov */
-    case 1241: /* and */
-      value = 1241;    /* --> and.  */
+    case 1992: /* bic */
+    case 1242: /* and */
+      value = 1242;    /* --> and.  */
       break;
-    case 1226: /* movs */
-    case 1242: /* ands */
-      value = 1242;    /* --> ands.  */
+    case 1225: /* mov */
+    case 1244: /* and */
+      value = 1244;    /* --> and.  */
       break;
-    case 1935: /* cmple */
-    case 1277: /* cmpge */
-      value = 1277;    /* --> cmpge.  */
+    case 1229: /* movs */
+    case 1245: /* ands */
+      value = 1245;    /* --> ands.  */
       break;
-    case 1938: /* cmplt */
-    case 1280: /* cmpgt */
-      value = 1280;    /* --> cmpgt.  */
+    case 1993: /* cmple */
+    case 1280: /* cmpge */
+      value = 1280;    /* --> cmpge.  */
       break;
-    case 1936: /* cmplo */
-    case 1282: /* cmphi */
-      value = 1282;    /* --> cmphi.  */
+    case 1996: /* cmplt */
+    case 1283: /* cmpgt */
+      value = 1283;    /* --> cmpgt.  */
       break;
-    case 1937: /* cmpls */
-    case 1285: /* cmphs */
-      value = 1285;    /* --> cmphs.  */
+    case 1994: /* cmplo */
+    case 1285: /* cmphi */
+      value = 1285;    /* --> cmphi.  */
       break;
-    case 1219: /* mov */
-    case 1307: /* cpy */
-      value = 1307;    /* --> cpy.  */
+    case 1995: /* cmpls */
+    case 1288: /* cmphs */
+      value = 1288;    /* --> cmphs.  */
       break;
-    case 1221: /* mov */
-    case 1308: /* cpy */
-      value = 1308;    /* --> cpy.  */
+    case 1222: /* mov */
+    case 1310: /* cpy */
+      value = 1310;    /* --> cpy.  */
       break;
-    case 1945: /* fmov */
     case 1224: /* mov */
-    case 1309: /* cpy */
-      value = 1309;    /* --> cpy.  */
-      break;
-    case 1214: /* mov */
-    case 1321: /* dup */
-      value = 1321;    /* --> dup.  */
-      break;
-    case 1216: /* mov */
-    case 1213: /* mov */
-    case 1322: /* dup */
-      value = 1322;    /* --> dup.  */
+    case 1311: /* cpy */
+      value = 1311;    /* --> cpy.  */
       break;
-    case 1944: /* fmov */
-    case 1218: /* mov */
-    case 1323: /* dup */
-      value = 1323;    /* --> dup.  */
+    case 2003: /* fmov */
+    case 1227: /* mov */
+    case 1312: /* cpy */
+      value = 1312;    /* --> cpy.  */
       break;
     case 1217: /* mov */
-    case 1324: /* dupm */
-      value = 1324;    /* --> dupm.  */
+    case 1324: /* dup */
+      value = 1324;    /* --> dup.  */
+      break;
+    case 1219: /* mov */
+    case 1216: /* mov */
+    case 1325: /* dup */
+      value = 1325;    /* --> dup.  */
       break;
-    case 1939: /* eon */
-    case 1326: /* eor */
-      value = 1326;    /* --> eor.  */
+    case 2002: /* fmov */
+    case 1221: /* mov */
+    case 1326: /* dup */
+      value = 1326;    /* --> dup.  */
       break;
-    case 1227: /* not */
-    case 1328: /* eor */
-      value = 1328;    /* --> eor.  */
+    case 1220: /* mov */
+    case 1327: /* dupm */
+      value = 1327;    /* --> dupm.  */
       break;
-    case 1228: /* nots */
-    case 1329: /* eors */
-      value = 1329;    /* --> eors.  */
+    case 1997: /* eon */
+    case 1329: /* eor */
+      value = 1329;    /* --> eor.  */
       break;
-    case 1940: /* facle */
-    case 1334: /* facge */
-      value = 1334;    /* --> facge.  */
+    case 1230: /* not */
+    case 1331: /* eor */
+      value = 1331;    /* --> eor.  */
       break;
-    case 1941: /* faclt */
-    case 1335: /* facgt */
-      value = 1335;    /* --> facgt.  */
+    case 1231: /* nots */
+    case 1332: /* eors */
+      value = 1332;    /* --> eors.  */
       break;
-    case 1942: /* fcmle */
-    case 1344: /* fcmge */
-      value = 1344;    /* --> fcmge.  */
+    case 1998: /* facle */
+    case 1337: /* facge */
+      value = 1337;    /* --> facge.  */
       break;
-    case 1943: /* fcmlt */
-    case 1346: /* fcmgt */
-      value = 1346;    /* --> fcmgt.  */
+    case 1999: /* faclt */
+    case 1338: /* facgt */
+      value = 1338;    /* --> facgt.  */
       break;
-    case 1211: /* fmov */
-    case 1352: /* fcpy */
-      value = 1352;    /* --> fcpy.  */
+    case 2000: /* fcmle */
+    case 1351: /* fcmge */
+      value = 1351;    /* --> fcmge.  */
       break;
-    case 1210: /* fmov */
-    case 1369: /* fdup */
-      value = 1369;    /* --> fdup.  */
+    case 2001: /* fcmlt */
+    case 1353: /* fcmgt */
+      value = 1353;    /* --> fcmgt.  */
       break;
-    case 1212: /* mov */
-    case 1667: /* orr */
-      value = 1667;    /* --> orr.  */
+    case 1214: /* fmov */
+    case 1359: /* fcpy */
+      value = 1359;    /* --> fcpy.  */
       break;
-    case 1946: /* orn */
-    case 1668: /* orr */
-      value = 1668;    /* --> orr.  */
+    case 1213: /* fmov */
+    case 1382: /* fdup */
+      value = 1382;    /* --> fdup.  */
       break;
     case 1215: /* mov */
-    case 1670: /* orr */
-      value = 1670;    /* --> orr.  */
+    case 1713: /* orr */
+      value = 1713;    /* --> orr.  */
       break;
-    case 1225: /* movs */
-    case 1671: /* orrs */
-      value = 1671;    /* --> orrs.  */
+    case 2004: /* orn */
+    case 1714: /* orr */
+      value = 1714;    /* --> orr.  */
       break;
-    case 1220: /* mov */
-    case 1727: /* sel */
-      value = 1727;    /* --> sel.  */
+    case 1218: /* mov */
+    case 1716: /* orr */
+      value = 1716;    /* --> orr.  */
+      break;
+    case 1228: /* movs */
+    case 1717: /* orrs */
+      value = 1717;    /* --> orrs.  */
       break;
     case 1223: /* mov */
-    case 1728: /* sel */
-      value = 1728;    /* --> sel.  */
+    case 1779: /* sel */
+      value = 1779;    /* --> sel.  */
+      break;
+    case 1226: /* mov */
+    case 1780: /* sel */
+      value = 1780;    /* --> sel.  */
       break;
     default: return NULL;
     }
@@ -578,10 +584,11 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
   return aarch64_opcode_table + value;
 }
 
-const char*
+bfd_boolean
 aarch64_insert_operand (const aarch64_operand *self,
                           const aarch64_opnd_info *info,
-                          aarch64_insn *code, const aarch64_inst *inst)
+                          aarch64_insn *code, const aarch64_inst *inst,
+                          aarch64_operand_error *errors)
 {
   /* Use the index as the key.  */
   int key = self - aarch64_operands;
@@ -611,52 +618,53 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 26:
     case 27:
     case 28:
-    case 144:
-    case 145:
-    case 146:
-    case 147:
-    case 148:
-    case 149:
-    case 150:
-    case 151:
-    case 152:
+    case 29:
     case 153:
-    case 166:
-    case 167:
-    case 168:
-    case 169:
-    case 170:
-    case 171:
-    case 172:
-    case 173:
-    case 174:
+    case 154:
+    case 155:
+    case 156:
+    case 157:
+    case 158:
+    case 159:
+    case 160:
+    case 161:
+    case 162:
     case 175:
+    case 176:
+    case 177:
     case 178:
-      return aarch64_ins_regno (self, info, code, inst);
+    case 179:
+    case 180:
+    case 181:
+    case 182:
+    case 183:
+    case 187:
+    case 190:
+      return aarch64_ins_regno (self, info, code, inst, errors);
     case 13:
-      return aarch64_ins_reg_extended (self, info, code, inst);
+      return aarch64_ins_reg_extended (self, info, code, inst, errors);
     case 14:
-      return aarch64_ins_reg_shifted (self, info, code, inst);
+      return aarch64_ins_reg_shifted (self, info, code, inst, errors);
     case 19:
-      return aarch64_ins_ft (self, info, code, inst);
-    case 29:
+      return aarch64_ins_ft (self, info, code, inst, errors);
     case 30:
     case 31:
-      return aarch64_ins_reglane (self, info, code, inst);
     case 32:
-      return aarch64_ins_reglist (self, info, code, inst);
     case 33:
-      return aarch64_ins_ldst_reglist (self, info, code, inst);
+    case 192:
+      return aarch64_ins_reglane (self, info, code, inst, errors);
     case 34:
-      return aarch64_ins_ldst_reglist_r (self, info, code, inst);
+      return aarch64_ins_reglist (self, info, code, inst, errors);
     case 35:
-      return aarch64_ins_ldst_elemlist (self, info, code, inst);
+      return aarch64_ins_ldst_reglist (self, info, code, inst, errors);
     case 36:
+      return aarch64_ins_ldst_reglist_r (self, info, code, inst, errors);
     case 37:
+      return aarch64_ins_ldst_elemlist (self, info, code, inst, errors);
     case 38:
-    case 48:
-    case 49:
-    case 50:
+    case 39:
+    case 40:
+    case 41:
     case 51:
     case 52:
     case 53:
@@ -667,105 +675,109 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 58:
     case 59:
     case 60:
-    case 72:
-    case 73:
-    case 74:
-    case 75:
-    case 141:
-    case 143:
-    case 158:
-    case 159:
-    case 160:
-    case 161:
-    case 162:
-    case 163:
-    case 164:
-    case 165:
-      return aarch64_ins_imm (self, info, code, inst);
-    case 39:
-    case 40:
-      return aarch64_ins_advsimd_imm_shift (self, info, code, inst);
-    case 41:
-    case 42:
-    case 43:
-      return aarch64_ins_advsimd_imm_modified (self, info, code, inst);
-    case 47:
-    case 134:
-      return aarch64_ins_fpimm (self, info, code, inst);
     case 61:
-    case 139:
-      return aarch64_ins_limm (self, info, code, inst);
     case 62:
-      return aarch64_ins_aimm (self, info, code, inst);
     case 63:
-      return aarch64_ins_imm_half (self, info, code, inst);
     case 64:
-      return aarch64_ins_fbits (self, info, code, inst);
-    case 66:
-    case 67:
-    case 68:
-      return aarch64_ins_imm_rotate (self, info, code, inst);
-    case 69:
-    case 70:
-      return aarch64_ins_cond (self, info, code, inst);
     case 76:
-    case 83:
-      return aarch64_ins_addr_simple (self, info, code, inst);
     case 77:
-      return aarch64_ins_addr_regoff (self, info, code, inst);
     case 78:
     case 79:
+    case 150:
+    case 152:
+    case 167:
+    case 168:
+    case 169:
+    case 170:
+    case 171:
+    case 172:
+    case 173:
+    case 174:
+      return aarch64_ins_imm (self, info, code, inst, errors);
+    case 42:
+    case 43:
+      return aarch64_ins_advsimd_imm_shift (self, info, code, inst, errors);
+    case 44:
+    case 45:
+    case 46:
+      return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors);
+    case 50:
+    case 141:
+      return aarch64_ins_fpimm (self, info, code, inst, errors);
+    case 65:
+    case 148:
+      return aarch64_ins_limm (self, info, code, inst, errors);
+    case 66:
+      return aarch64_ins_aimm (self, info, code, inst, errors);
+    case 67:
+      return aarch64_ins_imm_half (self, info, code, inst, errors);
+    case 68:
+      return aarch64_ins_fbits (self, info, code, inst, errors);
+    case 70:
+    case 71:
+    case 146:
+      return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
+    case 72:
+    case 145:
+      return aarch64_ins_imm_rotate1 (self, info, code, inst, errors);
+    case 73:
+    case 74:
+      return aarch64_ins_cond (self, info, code, inst, errors);
     case 80:
-      return aarch64_ins_addr_simm (self, info, code, inst);
+    case 87:
+      return aarch64_ins_addr_simple (self, info, code, inst, errors);
     case 81:
-      return aarch64_ins_addr_simm10 (self, info, code, inst);
+      return aarch64_ins_addr_regoff (self, info, code, inst, errors);
     case 82:
-      return aarch64_ins_addr_uimm12 (self, info, code, inst);
+    case 83:
     case 84:
-      return aarch64_ins_simd_addr_post (self, info, code, inst);
+      return aarch64_ins_addr_simm (self, info, code, inst, errors);
     case 85:
-      return aarch64_ins_sysreg (self, info, code, inst);
+      return aarch64_ins_addr_simm10 (self, info, code, inst, errors);
     case 86:
-      return aarch64_ins_pstatefield (self, info, code, inst);
-    case 87:
+      return aarch64_ins_addr_uimm12 (self, info, code, inst, errors);
     case 88:
+      return aarch64_ins_addr_offset (self, info, code, inst, errors);
     case 89:
+      return aarch64_ins_simd_addr_post (self, info, code, inst, errors);
     case 90:
-      return aarch64_ins_sysins_op (self, info, code, inst);
+      return aarch64_ins_sysreg (self, info, code, inst, errors);
     case 91:
+      return aarch64_ins_pstatefield (self, info, code, inst, errors);
     case 92:
-      return aarch64_ins_barrier (self, info, code, inst);
     case 93:
-      return aarch64_ins_prfop (self, info, code, inst);
     case 94:
-      return aarch64_ins_hint (self, info, code, inst);
     case 95:
+      return aarch64_ins_sysins_op (self, info, code, inst, errors);
     case 96:
     case 97:
+      return aarch64_ins_barrier (self, info, code, inst, errors);
     case 98:
-      return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst);
+      return aarch64_ins_prfop (self, info, code, inst, errors);
     case 99:
-      return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst);
+      return aarch64_ins_hint (self, info, code, inst, errors);
     case 100:
-      return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst);
+      return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors);
     case 101:
     case 102:
     case 103:
     case 104:
-      return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst);
+      return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors);
     case 105:
+      return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors);
     case 106:
+      return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors);
     case 107:
     case 108:
     case 109:
     case 110:
+      return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors);
     case 111:
     case 112:
     case 113:
     case 114:
     case 115:
     case 116:
-      return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst);
     case 117:
     case 118:
     case 119:
@@ -773,46 +785,58 @@ aarch64_insert_operand (const aarch64_operand *self,
     case 121:
     case 122:
     case 123:
+      return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors);
     case 124:
-      return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst);
     case 125:
     case 126:
     case 127:
     case 128:
-      return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst);
     case 129:
-      return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst);
     case 130:
-      return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst);
     case 131:
-      return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst);
+      return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors);
     case 132:
-      return aarch64_ins_sve_aimm (self, info, code, inst);
     case 133:
-      return aarch64_ins_sve_asimm (self, info, code, inst);
+    case 134:
     case 135:
-      return aarch64_ins_sve_float_half_one (self, info, code, inst);
+      return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors);
     case 136:
-      return aarch64_ins_sve_float_half_two (self, info, code, inst);
+      return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors);
     case 137:
-      return aarch64_ins_sve_float_zero_one (self, info, code, inst);
+      return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors);
     case 138:
-      return aarch64_ins_inv_limm (self, info, code, inst);
+      return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors);
+    case 139:
+      return aarch64_ins_sve_aimm (self, info, code, inst, errors);
     case 140:
-      return aarch64_ins_sve_limm_mov (self, info, code, inst);
+      return aarch64_ins_sve_asimm (self, info, code, inst, errors);
     case 142:
-      return aarch64_ins_sve_scale (self, info, code, inst);
-    case 154:
-    case 155:
-      return aarch64_ins_sve_shlimm (self, info, code, inst);
-    case 156:
-    case 157:
-      return aarch64_ins_sve_shrimm (self, info, code, inst);
-    case 176:
-      return aarch64_ins_sve_index (self, info, code, inst);
-    case 177:
-    case 179:
-      return aarch64_ins_sve_reglist (self, info, code, inst);
+      return aarch64_ins_sve_float_half_one (self, info, code, inst, errors);
+    case 143:
+      return aarch64_ins_sve_float_half_two (self, info, code, inst, errors);
+    case 144:
+      return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors);
+    case 147:
+      return aarch64_ins_inv_limm (self, info, code, inst, errors);
+    case 149:
+      return aarch64_ins_sve_limm_mov (self, info, code, inst, errors);
+    case 151:
+      return aarch64_ins_sve_scale (self, info, code, inst, errors);
+    case 163:
+    case 164:
+      return aarch64_ins_sve_shlimm (self, info, code, inst, errors);
+    case 165:
+    case 166:
+      return aarch64_ins_sve_shrimm (self, info, code, inst, errors);
+    case 184:
+    case 185:
+    case 186:
+      return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
+    case 188:
+      return aarch64_ins_sve_index (self, info, code, inst, errors);
+    case 189:
+    case 191:
+      return aarch64_ins_sve_reglist (self, info, code, inst, errors);
     default: assert (0); abort ();
     }
 }