3 * rx-deocde.opc: Add new instructions pattern.
4 * rx-deocde.c: Regenerate.
5 * rx-dis.c (register_name): Add new register.
9 * aarch64-asm-2.c: Regenerate.
10 * aarch64-dis-2.c: Regenerate.
11 * aarch64-opc-2.c: Regenerate.
12 * aarch64-tbl.h (QL_SSHIFT_H): New.
13 (aarch64_opcode_table): Add fp16 versions of scvtf, fcvtzs, ucvtf
14 and fcvtzu to the Adv.SIMD scalar shift by immediate group.
18 * aarch64-asm-2.c: Regenerate.
19 * aarch64-dis-2.c: Regenerate.
20 * aarch64-opc-2.c: Regenerate.
21 * aarch64-tbl.h (QL_VSHIFT_H): New.
22 (aarch64_opcode_table): Add fp16 versions of scvtf, fcvtzs, ucvtf
23 and fcvtzu to the Adv.SIMD shift by immediate group.
27 * aarch64-asm-2.c: Regenerate.
28 * aarch64-dis-2.c: Regenerate.
29 * aarch64-opc-2.c: Regenerate.
30 * aarch64-tbl.h (QL_SISD_PAIR_H): New.
31 (aarch64_opcode_table): Add fp16 versions of fmaxnmp, faddp,
32 fmaxp, fminnmp, fminp to the Adv.SIMD scalar pairwise group.
36 * aarch64-dis.c (get_vreg_qualifier_from_value): Update comment
37 and adjust calculation to ignore qualifier for type 2H.
38 * aarch64-opc.c (aarch64_opnd_qualifier): Add "2H".
42 * aarch64-asm-2.c: Regenerate.
43 * aarch64-dis-2.c: Regenerate.
44 * aarch64-opc-2.c: Regenerate.
45 * aarch64-tbl.h (QL_SIMD_IMM_H): New.
46 (aarch64_opcode_table): Add fp16 version of fmov to the Adv.SIMD
47 modified immediate group.
51 * aarch64-asm-2.c: Regenerate.
52 * aarch64-dis-2.c: Regenerate.
53 * aarch64-opc-2.c: Regenerate.
54 * aarch64-tbl.h (QL_XLANES_FP_H): New.
55 (aarch64_opcode_table): Add fp16 versions of fmaxnmv, fmaxv,
56 fminnmv, fminv to the Adv.SIMD across lanes group.
60 * aarch64-asm-2.c: Regenerate.
61 * aarch64-dis-2.c: Regenerate.
62 * aarch64-opc-2.c: Regenerate.
63 * aarch64-tbl.h (aarch64_opcode_table): Add fp16 versions of fmla,
64 fmls, fmul and fmulx to the scalar indexed element group.
68 * aarch64-asm-2.c: Regenerate.
69 * aarch64-dis-2.c: Regenerate.
70 * aarch64-opc-2.c: Regenerate.
71 * aarch64-tbl.h (QL_ELEMENT_FP_H): New.
72 (aarch64_opcode_table): Add fp16 versions of fmla, fmls, fmul and
73 fmulx to the vector indexed element group.
77 * aarch64-asm-2.c: Regenerate.
78 * aarch64-dis-2.c: Regenerate.
79 * aarch64-opc-2.c: Regenerate.
80 * aarch64-tbl.h (QL_SISD_FCMP_H_0): new.
82 (aarch64_opcode_table): Add fp16 versions of fcvtns, fcvtms,
83 fcvtas, scvtf, fcmgt, fcmeq, fcmlt, fcvtps, fcvtzs, frecpe,
84 frecpx, fcvtnu, fcvtmu, fcvtau, ucvtf, fcmge, fcmle, fcvtpu,
85 fcvtzu and frsqrte to the scalar two register misc. group.
89 * aarch64-asm-2.c: Regenerate.
90 * aarch64-dis-2.c: Regenerate.
91 * aarch64-opc-2.c: Regenerate.
92 * aarch64-tbl.h (QL_V2SAMEH): New.
93 (aarch64_opcode_table): Add fp16 versions of frintn, frintm,
94 fcvtns, fcvtms, fcvtas, scvtf, fcmgt, fcmeq, fcmlt, fabs, frintp,
95 frintz, fcvtps, fcvtzs, frecpe, frinta, frintx, fcvtnu, fcvtmu,
96 fcvtau, ucvtf, fcmge, fcmle, fneg, frinti, fcvtpu, fcvtzu, frsqrte
97 and fsqrt to the vector register misc. group.
101 * aarch64-asm-2.c: Regenerate.
102 * aarch64-dis-2.c: Regenerate.
103 * aarch64-opc-2.c: Regenerate.
104 * aarch64-tbl.h (aarch64_opcode_table): Add fp16 versions of
105 fmulx, fcmeq, frecps, frsqrts, fcmge, facge, fabd, fcmgt and facgt
106 to the scalar three same group.
110 * aarch64-asm-2.c: Regenerate.
111 * aarch64-dis-2.c: Regenerate.
112 * aarch64-opc-2.c: Regenerate.
113 * aarch64-tbl.h (QL_V3SAMEH): New.
114 (aarch64_opcode_table): Add fp16 versions of fmaxnm, fmla, fadd,
115 fmulx, fcmeq, fmax, frecps, fminnm, fmls, fsub, fmin, frsqrts,
116 fmaxnmp, faddp, fmul, fcmge, facge, fmaxp, fdiv, fminnmp, fabd,
117 fcmgt, facgt and fminp to the vector three same group.
121 * aarch64-tbl.h (aarch64_feature_simd_f16): New.
126 * aarch64-opc.c (aarch64_sys_reg_supported_p): Add mistakenly
128 (aarch64_pstatefield_supported_p): Move feature checks for AT
130 (aarch64_sys_ins_reg_supported_p): .. to here.
135 * ppc-opc.c (insert_fxm): Remove "ignored" from error message.
136 (powerpc_opcodes): Remove single-operand mfcr.
140 * aarch64-asm.c (aarch64_ins_hint): New.
141 * aarch64-asm.h (aarch64_ins_hint): Declare.
142 * aarch64-dis.c (aarch64_ext_hint): New.
143 * aarch64-dis.h (aarch64_ext_hint): Declare.
144 * aarch64-opc-2.c: Regenerate.
145 * aarch64-opc.c (aarch64_hint_options): New.
146 * aarch64-tbl.h (AARCH64_OPERANDS): Fix typos.
150 * aarch64-gen.c (find_alias_opcode): Set max_num_aliases to 16.
154 * aarch64-opc.c (aarch64_sys_reg): Add pbmlimitr_el1, pmbptr_el1,
155 pmbsr_el1, pmbidr_el1, pmscr_el1, pmsicr_el1, pmsirr_el1,
156 pmsfcr_el1, pmsevfr_el1, pmslatfr_el1, pmsidr_el1, pmscr_el2 and
158 (aarch64_sys_reg_supported_p): Add architecture feature tests for
163 * aarch64-opc.c (aarch64_sys_regs_at): Add "s1e1rp" and "s1e1wp".
164 (aarch64_sys_ins_reg_supported_p): Add ARMv8.2 system register
165 feature test for "s1e1rp" and "s1e1wp".
169 * aarch64-opc.c (aarch64_sys_regs_dc): Add "cvap".
170 (aarch64_sys_ins_reg_supported_p): New.
174 * aarch64-dis.c (aarch64_ext_regrt_sysins): Replace use of has_xt
175 with aarch64_sys_ins_reg_has_xt.
176 (aarch64_ext_sysins_op): Likewise.
177 * aarch64-opc.c (operand_general_constraint_met_p): Likewise.
179 (aarch64_sys_regs_ic): Update for changes to aarch64_sys_ins_reg.
180 (aarch64_sys_regs_dc): Likewise.
181 (aarch64_sys_regs_at): Likewise.
182 (aarch64_sys_regs_tlbi): Likewise.
183 (aarch64_sys_ins_reg_has_xt): New.
187 * aarch64-opc.c (aarch64_sys_regs): Add "uao".
188 (aarch64_sys_reg_supported_p): Add comment. Add checks for "uao".
189 (aarch64_pstatefields): Add "uao".
190 (aarch64_pstatefield_supported_p): Add checks for "uao".
194 * aarch64-opc.c (aarch64_sys_regs): Add "vsesr_el2", "erridr_el1",
195 "errselr_el1", "erxfr_el1", "erxctlr", "erxaddr_el1",
196 "erxmisc0_el1", "erxmisc1_el1", "disr_el1" and "vdisr_el2".
197 (aarch64_sys_reg_supported_p): Add architecture feature tests for
202 * aarch64-asm-2.c: Regenerate.
203 * aarch64-dis-2.c: Regenerate.
204 * aarch64-tbl.h (aarch64_feature_ras): New.
206 (aarch64_opcode_table): Add "esb".
210 * i386-dis.c (MOD_0F01_REG_5): New.
211 (RM_0F01_REG_5): Likewise.
212 (reg_table): Use MOD_0F01_REG_5.
213 (mod_table): Add MOD_0F01_REG_5.
214 (rm_table): Add RM_0F01_REG_5.
215 * i386-gen.c (cpu_flag_init): Add CPU_OSPKE_FLAGS.
216 (cpu_flags): Add CpuOSPKE.
217 * i386-opc.h (CpuOSPKE): New.
218 (i386_cpu_flags): Add cpuospke.
219 * i386-opc.tbl: Add rdpkru and wrpkru instructions.
220 * i386-init.h: Regenerated.
221 * i386-tbl.h: Likewise.
225 * rl78-decode.opc: Enable MULU for all ISAs.
226 * rl78-decode.c: Regenerate.
230 * opcodes/ppc-opc.c (powerpc_opcodes): Sort power9 insns by
235 * arc-dis.c (special_flag_p): Match full mnemonic.
236 * arc-opc.c (print_insn_arc): Check section size to read
237 appropriate number of bytes. Fix printing.
238 * arc-tbl.h: Fix instruction table. Allow clri/seti instruction without
243 * arm-dis.c (arm_opcodes): <ldaexh>: Fix typo...
248 * aarch64-asm-2.c: Regenerate.
249 * aarch64-dis-2.c: Regenerate.
250 * aarch64-opc-2.c: Regenerate.
251 * aarch64-tbl.h (QL_FIX2FP_H, QL_FP2FIX_H): New.
252 (QL_INT2FP_H, QL_FP2INT_H): New.
253 (QL_FP2_H, QL_FP3_H, QL_FP4_H): New
256 (aarch64_opcode_table): Add 16-bit variants of scvt, ucvtf,
257 fcvtzs, fcvtzu, fcvtns, fcvtnu, scvtf, ucvtf, fcvtas, fcvtau,
258 fmov, fcvtpos, fcvtpu, fcvtms, fcvtmu, fcvtzs, fcvtzu, fccmp,
259 fccmpe, fcmp, fcmpe, fabs, fneg, fsqrt, frintn, frintp, frintm,
260 frintz, frinta, frintx, frinti, fmul, fdiv, fadd, fsub, fmax,
261 fmin, fmaxnm, fminnm, fnmul, fmadd, fmsub, fnmadd, fnmsub and
266 * aarch64-opc.c (half_conv_t): New.
267 (expand_fp_imm): Replace is_dp flag with the parameter size to
268 specify the number of bytes for the required expansion. Treat
269 a 16-bit expansion like a 32-bit expansion. Add check for an
270 unsupported size request. Update comment.
271 (aarch64_print_operand): Update to support 16-bit floating point
272 values. Update for changes to expand_fp_imm.
276 * aarch64-tbl.h (aarch64_feature_fp_f16): New.
281 * aarch64-asm-2.c: Regenerate.
282 * aarch64-dis-2.c: Regenerate.
283 * aarch64-opc-2.c: Regenerate.
284 * aarch64-tbl.h (aarchr64_opcode_table): Update "rev", add
289 * aarch64-asm-2.c: Regenerate.
290 * aarch64-asm.c (convert_bfc_to_bfm): New.
291 (convert_to_real): Add case for OP_BFC.
292 * aarch64-dis-2.c: Regenerate.
293 * aarch64-dis.c: (convert_bfm_to_bfc): New.
294 (convert_to_alias): Add case for OP_BFC.
295 * aarch64-opc-2.c: Regenerate.
296 * aarch64-opc.c (operand_general_constraint_met_p): Weaken assert
297 to allow width operand in three-operand instructions.
298 * aarch64-tbl.h (QL_BF1): New.
299 (aarch64_feature_v8_2): New.
301 (aarch64_opcode_table): Add "bfc".
305 * aarch64-asm-2.c: Regenerate.
306 * aarch64-dis-2.c: Regenerate.
307 * aarch64-dis.c: Weaken assert.
308 * aarch64-gen.c: Include the instruction in the list of its
313 * aarch64-opc.c (aarch64_sys_regs): Add "id_aa64mmfr2_el1".
314 (aarch64_sys_reg_supported_p): Add ARMv8.2 system register
319 * arm-dis.c (print_insn): Also set is_thumb for Mach-O.
323 * aarch64-opc.c (aarch64_sys_regs): Add spsr_el12, elr_el12,
324 sctlr_el12, cpacr_el12, ttbr1_el2, ttbr0_el12, ttbr1_el12,
325 tcr_el12, afsr0_el12, afsr1_el12, esr_el12, far_el12, mair_el12,
326 amair_el12, vbar_el12, contextidr_el2, contextidr_el12,
327 cntkctl_el12, cntp_tval_el02, cntp_ctl_el02, cntp_cval_el02,
328 cntv_tval_el02, cntv_ctl_el02, cntv_cval_el02, cnthv_tval_el2,
329 cnthv_ctl_el2, cnthv_cval_el2.
330 (aarch64_sys_reg_supported_p): Update for the new system
336 * h8300-dis.c (bfd_h8_disassemble): Remove redundant if clause.
340 * po/zh_CN.po: Updated simplified Chinese translation.
344 * aarch64-opc.c (operand_general_constraint_met_p): Check validity
345 of MSR PAN immediate operand.
349 * rx-dis.c (condition_names): Replace always and never with
350 invalid, since the always/never conditions can never be legal.
354 * configure: Regenerate.
359 * ppc-dis.c (ppc_opts): Add "power9" and "pwr9" entries.
360 Add PPC_OPCODE_VSX3 to the vsx entry.
361 (powerpc_init_dialect): Set default dialect to power9.
362 * ppc-opc.c (insert_dcmxs, extract_dcmxs, insert_dxd, extract_dxd,
363 insert_dxdn, extract_dxdn, insert_l0, extract_l0, insert_l1,
364 extract_l1 insert_xtq6, extract_xtq6): New static functions.
365 (insert_esync): Test for illegal L operand value.
366 (DCMX, DCMXS, DXD, NDXD, L0, L1, RC, FC, UIM6, X_R, RIC, PRS, XSQ6,
367 XTQ6, LRAND, IMM8, DQX, DQX_MASK, DX, DX_MASK, VXVAPS_MASK, VXVA,XVA,
368 XX2VA, XVARC, XBF_MASK, XX2UIM4_MASK, XX2BFD_MASK, XX2DCMXS_MASK,
369 XVA_MASK, XRLA_MASK, XBFRARB_MASK, XLRAND_MASK, POWER9, PPCVEC3,
370 PPCVSX3): New defines.
371 (powerpc_opcodes) <ps_cmpu0, ps_cmpo0, ps_cmpu1, ps_cmpo1, fcmpu,
372 fcmpo, ftdiv, ftsqrt>: Use XBF_MASK.
373 <mcrxr>: Use XBFRARB_MASK.
374 <addpcis, bcdcfn., bcdcfsq., bcdcfz., bcdcpsgn., bcdctn., bcdctsq.,
375 bcdctz., bcds., bcdsetsgn., bcdsr., bcdtrunc., bcdus., bcdutrunc.,
376 cmpeqb, cmprb, cnttzd, cnttzd., cnttzw, cnttzw., copy, copy_first,
377 cp_abort, darn, dtstsfi, dtstsfiq, extswsli, extswsli., ldat, ldmx,
378 lwat, lxsd, lxsibzx, lxsihzx, lxssp, lxv, lxvb16x, lxvh8x, lxvl, lxvll,
379 lxvwsx, lxvx, maddhd, maddhdu, maddld, mcrxrx, mfvsrld, modsd, modsw,
380 modud, moduw, msgsync, mtvsrdd, mtvsrws, paste, paste., paste_last,
381 rmieg, setb, slbieg, slbsync, stdat, stop, stwat, stxsd, stxsibx,
382 stxsihx, stxssp, stxv, stxvb16x, stxvh8x, stxvl, stxvll, stxvx,
383 subpcis, urfid, vbpermd, vclzlsbb, vcmpneb, vcmpneb., vcmpneh,
384 vcmpneh., vcmpnew, vcmpnew., vcmpnezb, vcmpnezb., vcmpnezh, vcmpnezh.,
385 vcmpnezw, vcmpnezw., vctzb, vctzd, vctzh, vctzlsbb, vctzw, vextractd,
386 vextractub, vextractuh, vextractuw, vextsb2d, vextsb2w, vextsh2d,
387 vextsh2w, vextsw2d, vextublx, vextubrx, vextuhlx, vextuhrx, vextuwlx,
388 vextuwrx, vinsertb, vinsertd, vinserth, vinsertw, vmul10cuq,
389 vmul10ecuq, vmul10euq, vmul10uq, vnegd, vnegw, vpermr, vprtybd,
390 vprtybq, vprtybw, vrldmi, vrldnm, vrlwmi, vrlwnm, vslv, vsrv, wait,
391 xsabsqp, xsaddqp, xsaddqpo, xscmpeqdp, xscmpexpdp, xscmpexpqp,
392 xscmpgedp, xscmpgtdp, xscmpnedp, xscmpoqp, xscmpuqp, xscpsgnqp,
393 xscvdphp, xscvdpqp, xscvhpdp, xscvqpdp, xscvqpdpo, xscvqpsdz,
394 xscvqpswz, xscvqpudz, xscvqpuwz, xscvsdqp, xscvudqp, xsdivqp,
395 xsdivqpo, xsiexpdp, xsiexpqp, xsmaddqp, xsmaddqpo, xsmaxcdp,
396 xsmaxjdp, xsmincdp, xsminjdp, xsmsubqp, xsmsubqpo, xsmulqp, xsmulqpo,
397 xsnabsqp, xsnegqp, xsnmaddqp, xsnmaddqpo, xsnmsubqp, xsnmsubqpo,
398 xsrqpi, xsrqpix, xsrqpxp, xssqrtqp, xssqrtqpo, xssubqp, xssubqpo,
399 xststdcdp, xststdcqp, xststdcsp, xsxexpdp, xsxexpqp, xsxsigdp,
400 xsxsigqp, xvcmpnedp, xvcmpnedp., xvcmpnesp, xvcmpnesp., xvcvhpsp,
401 xvcvsphp, xviexpdp, xviexpsp, xvtstdcdp, xvtstdcsp, xvxexpdp,
402 xvxexpsp, xvxsigdp, xvxsigsp, xxbrd, xxbrh, xxbrq, xxbrw, xxextractuw,
403 xxinsertw, xxperm, xxpermr, xxspltib>: New instructions.
404 <doze, nap, sleep, rvwinkle, waitasec, lxvx, stxvx>: Disable on POWER9.
405 <tlbiel, tlbie, sync, slbmfev, slbmfee>: Add additional operands.
409 * rx-decode.opc (rx_decode_opcode): Decode extra NOP
411 * rx-decode.c: Regenerate.
415 * rx-decode.opc (rx_disp): If the displacement is zero, set the
416 type to RX_Operand_Zero_Indirect.
417 * rx-decode.c: Regenerate.
418 * rx-dis (print_insn): Handle RX_Operand_Zero_Indirect.
422 * aarch64-dis.c (aarch64_decode_insn): Add one argument
423 noaliases_p. Update comments. Pass noaliases_p rather than
424 no_aliases to aarch64_opcode_decode.
425 (print_insn_aarch64_word): Pass no_aliases to
431 * rl78-decode.opc (MOV): Added offset to DE register in index
433 * rl78-decode.c: Regenerate.
438 * rl78-decode.opc: Add 's' print operator to instructions that
439 access system registers.
440 * rl78-decode.c: Regenerate.
441 * rl78-dis.c (print_insn_rl78_common): Decode all system
447 * rl78-decode.opc: Add 'a' print operator to mov instructions
448 using stack pointer plus index addressing.
449 * rl78-decode.c: Regenerate.
453 * s390-opc.c: Fix comment.
454 * s390-opc.txt: Change instruction type for troo, trot, trto, and
455 trtt to RRF_U0RER since the second parameter does not need to be a
460 * arc-dis.c (print_insn_arc): Initiallise insn array.
464 * aarch64-dis.c (aarch64_ext_sysins_op): Access field
465 'name' rather than 'template'.
466 * aarch64-opc.c (aarch64_print_operand): Likewise.
470 * arc-dis.c: Revamped file for ARC support
471 * arc-dis.h: Likewise.
472 * arc-ext.c: Likewise.
473 * arc-ext.h: Likewise.
474 * arc-opc.c: Likewise.
475 * arc-fxi.h: New file.
476 * arc-regs.h: Likewise.
477 * arc-tbl.h: Likewise.
481 * aarch64-dis.c (disas_aarch64_insn): Remove static. Change
482 argument insn type to aarch64_insn. Rename to ...
483 (aarch64_decode_insn): ... it.
484 (print_insn_aarch64_word): Caller updated.
488 * aarch64-dis.c (disas_aarch64_insn): Remove argument PC.
489 (print_insn_aarch64_word): Caller updated.
493 * s390-mkopc.c (main): Parse htm and vx flag.
494 * s390-opc.txt: Mark instructions from the hardware transactional
495 memory and vector facilities with the "htm"/"vx" flag.
499 * po/de.po: Updated German translation.
503 * ppc-opc.c (PPC500): Mark some opcodes as invalid
507 * bfin-dis.c (fmtconst): Remove unnecessary call to the abs
509 * tic30-dis.c (print_branch): Likewise.
510 * cgen-asm.c (cgen_parse_signed_integer): Cast integer to signed
511 value before left shifting.
512 * fr30-ibld.c (fr30_cgen_extract_operand): Likewise.
513 * hppa-dis.c (print_insn_hppa): Likewise.
514 * mips-dis.c (mips_cp0sel_names_mipsr5900): Delete unused static
516 * msp430-dis.c (msp430_singleoperand): Likewise.
517 (msp430_doubleoperand): Likewise.
518 (print_insn_msp430): Likewise.
519 * nds32-asm.c (parse_operand): Likewise.
520 * sh-opc.h (MASK): Likewise.
521 * v850-dis.c (get_operand_value): Likewise.
525 * rx-decode.opc (bwl): Use RX_Bad_Size.
527 (ubwl): Likewise. Rename to ubw.
528 (uBWL): Rename to uBW.
529 Replace all references to uBWL with uBW.
530 * rx-decode.c: Regenerate.
531 * rx-dis.c (size_names): Add entry for RX_Bad_Size.
532 (opsize_names): Likewise.
533 (print_insn_rx): Detect and report RX_Bad_Size.
537 * ppc-opc.c (powerpc_opcodes): Add mfdscr, mfctrl, mtdscr and mtctrl.
541 * sparc-dis.c (print_insn_sparc): Handle the privileged register
546 * i386-dis.c (print_insn): Fix decoding of three byte operands.
551 * i386-dis.c: Use MOD_TABLE for most of mask instructions.
552 (MOD enum): Add MOD_VEX_W_0_0F41_P_0_LEN_1,
553 MOD_VEX_W_1_0F41_P_0_LEN_1, MOD_VEX_W_0_0F41_P_2_LEN_1,
554 MOD_VEX_W_1_0F41_P_2_LEN_1, MOD_VEX_W_0_0F42_P_0_LEN_1,
555 MOD_VEX_W_1_0F42_P_0_LEN_1, MOD_VEX_W_0_0F42_P_2_LEN_1,
556 MOD_VEX_W_1_0F42_P_2_LEN_1, MOD_VEX_W_0_0F44_P_0_LEN_1,
557 MOD_VEX_W_1_0F44_P_0_LEN_1, MOD_VEX_W_0_0F44_P_2_LEN_1,
558 MOD_VEX_W_1_0F44_P_2_LEN_1, MOD_VEX_W_0_0F45_P_0_LEN_1,
559 MOD_VEX_W_1_0F45_P_0_LEN_1, MOD_VEX_W_0_0F45_P_2_LEN_1,
560 MOD_VEX_W_1_0F45_P_2_LEN_1, MOD_VEX_W_0_0F46_P_0_LEN_1,
561 MOD_VEX_W_1_0F46_P_0_LEN_1, MOD_VEX_W_0_0F46_P_2_LEN_1,
562 MOD_VEX_W_1_0F46_P_2_LEN_1, MOD_VEX_W_0_0F47_P_0_LEN_1,
563 MOD_VEX_W_1_0F47_P_0_LEN_1, MOD_VEX_W_0_0F47_P_2_LEN_1,
564 MOD_VEX_W_1_0F47_P_2_LEN_1, MOD_VEX_W_0_0F4A_P_0_LEN_1,
565 MOD_VEX_W_1_0F4A_P_0_LEN_1, MOD_VEX_W_0_0F4A_P_2_LEN_1,
566 MOD_VEX_W_1_0F4A_P_2_LEN_1, MOD_VEX_W_0_0F4B_P_0_LEN_1,
567 MOD_VEX_W_1_0F4B_P_0_LEN_1, MOD_VEX_W_0_0F4B_P_2_LEN_1,
568 MOD_VEX_W_0_0F91_P_0_LEN_0, MOD_VEX_W_1_0F91_P_0_LEN_0,
569 MOD_VEX_W_0_0F91_P_2_LEN_0, MOD_VEX_W_1_0F91_P_2_LEN_0,
570 MOD_VEX_W_0_0F92_P_0_LEN_0, MOD_VEX_W_0_0F92_P_2_LEN_0,
571 MOD_VEX_W_0_0F92_P_3_LEN_0, MOD_VEX_W_1_0F92_P_3_LEN_0,
572 MOD_VEX_W_0_0F93_P_0_LEN_0, MOD_VEX_W_0_0F93_P_2_LEN_0,
573 MOD_VEX_W_0_0F93_P_3_LEN_0, MOD_VEX_W_1_0F93_P_3_LEN_0,
574 MOD_VEX_W_0_0F98_P_0_LEN_0, MOD_VEX_W_1_0F98_P_0_LEN_0,
575 MOD_VEX_W_0_0F98_P_2_LEN_0, MOD_VEX_W_1_0F98_P_2_LEN_0,
576 MOD_VEX_W_0_0F99_P_0_LEN_0, MOD_VEX_W_1_0F99_P_0_LEN_0,
577 MOD_VEX_W_0_0F99_P_2_LEN_0, MOD_VEX_W_1_0F99_P_2_LEN_0,
578 MOD_VEX_W_0_0F3A30_P_2_LEN_0, MOD_VEX_W_1_0F3A30_P_2_LEN_0,
579 MOD_VEX_W_0_0F3A31_P_2_LEN_0, MOD_VEX_W_1_0F3A31_P_2_LEN_0,
580 MOD_VEX_W_0_0F3A32_P_2_LEN_0, MOD_VEX_W_1_0F3A32_P_2_LEN_0,
581 MOD_VEX_W_0_0F3A33_P_2_LEN_0, MOD_VEX_W_1_0F3A33_P_2_LEN_0.
582 (vex_w_table): Replace terminals with MOD_TABLE entries for
583 most of mask instructions.
587 * cgen.sh: Trim trailing space from cgen output.
588 * ia64-gen.c (print_dependency_table): Don't generate trailing space.
589 (print_dis_table): Likewise.
590 * opc2c.c (dump_lines): Likewise.
591 (orig_filename): Warning fix.
592 * ia64-asmtab.c: Regenerate.
596 * arm-dis.c (print_insn_arm): Disassembling for all targets V6
597 and higher with ARM instruction set will now mark the 26-bit
598 versions of teq,tst,cmn and cmp as UNPREDICTABLE.
599 (arm_opcodes): Fix for unpredictable nop being recognized as a
604 * micromips-opc.c (micromips_opcodes): Re-order table so that move
605 based on 'or' is first.
606 * mips-opc.c (mips_builtin_opcodes): Ditto.
611 * aarch64-tbl.h (aarch64_opcode_table): Fix mask for SIMD EXT
616 * mips-opc.c (mips_builtin_opcodes): Add "sigrie".
620 * i386-gen.c: Remove CpuFMA4 from CPU_ZNVER1_FLAGS.
621 * i386-init.h: Regenerated.
626 * i386-dis.c (MOD_0FC3): New.
627 (PREFIX_0FC3): Renamed to ...
628 (PREFIX_MOD_0_0FC3): This.
629 (dis386_twobyte): Replace PREFIX_0FC3 with MOD_0FC3.
630 (prefix_table): Replace Ma with Ev on movntiS.
631 (mod_table): Add MOD_0FC3.
635 * configure: Regenerated.
640 * i386-dis.c (get64): Avoid signed integer overflow.
645 * i386-dis-evex.h (EVEX_W_0F78_P_2): Replace "EXxmmq" with
646 "EXEvexHalfBcstXmmq" for the second operand.
647 (EVEX_W_0F79_P_2): Likewise.
648 (EVEX_W_0F7A_P_2): Likewise.
649 (EVEX_W_0F7B_P_2): Likewise.
653 * arm-dis.c (print_insn_coprocessor): Added support for quarter
654 float bitfield format.
655 (coprocessor_opcodes): Changed VFP vmov reg,immediate to use new
656 quarter float bitfield format.
660 * configure: Regenerated.
664 * ppc-opc.c (PPC750, PPC7450, PPC860): Define using PPC_OPCODE_*.
665 * ppc-dis.c (ppc_opts): Add 821, 850 and 860 entries. Add
666 PPC_OPCODE_7450 to 7450 entry. Add PPC_OPCODE_750 to 750cl entry.
671 * nios2-dis.c (nios2_extract_opcode): New.
672 (nios2_disassembler_state): New.
673 (nios2_find_opcode_hash): Use mach parameter to select correct
675 (nios2_print_insn_arg): Extend to support new R2 argument letters
677 (print_insn_nios2): Check for 16-bit instruction at end of memory.
678 * nios2-opc.c (nios2_builtin_regs): Add R2 register attributes.
679 (NIOS2_NUM_OPCODES): Rename to...
680 (NIOS2_NUM_R1_OPCODES): This.
681 (nios2_r2_opcodes): New.
682 (NIOS2_NUM_R2_OPCODES): New.
683 (nios2_num_r2_opcodes): New.
684 (nios2_r2_asi_n_mappings, nios2_num_r2_asi_n_mappings): New.
685 (nios2_r2_shi_n_mappings, nios2_num_r2_shi_n_mappings): New.
686 (nios2_r2_andi_n_mappings, nios2_num_r2_andi_n_mappings): New.
687 (nios2_r2_reg3_mappings, nios2_num_r2_reg3_mappings): New.
688 (nios2_r2_reg_range_mappings, nios2_num_r2_reg_range_mappings): New.
692 * i386-dis.c (OP_Mwaitx): New.
693 (rm_table): Add monitorx/mwaitx.
694 * i386-gen.c (cpu_flag_init): Add CpuMWAITX to CPU_BDVER4_FLAGS
695 and CPU_ZNVER1_FLAGS. Add CPU_MWAITX_FLAGS.
696 (operand_type_init): Add CpuMWAITX.
697 * i386-opc.h (CpuMWAITX): New.
698 (i386_cpu_flags): Add cpumwaitx.
699 * i386-opc.tbl: Add monitorx and mwaitx.
700 * i386-init.h: Regenerated.
701 * i386-tbl.h: Likewise.
705 * ppc-opc.c (insert_ls): Test for invalid LS operands.
706 (insert_esync): New function.
707 (LS, WC): Use insert_ls.
708 (ESYNC): Use insert_esync.
712 * dis-buf.c (buffer_read_memory): Fail is stop_vma is set and the
713 requested region lies beyond it.
714 * bfin-dis.c (print_insn_bfin): Ignore sysop instructions when
715 looking for 32-bit insns.
716 * mcore-dis.c (print_insn_mcore): Disable stop_vma when reading
718 * sh-dis.c (print_insn_sh): Likewise.
719 * tic6x-dis.c (print_insn_tic6x): Disable stop_vma when reading
720 blocks of instructions.
721 * vax-dis.c (print_insn_vax): Check that the requested address
722 does not clash with the stop_vma.
726 * ppc-dis.h (skip_optional_operands): Use ppc_optional_operand_value.
727 * ppc-opc.c (FXM4): Add non-zero optional value.
730 (insert_fxm): Handle new default operand value.
731 (extract_fxm): Likewise.
732 (insert_tbr): Likewise.
733 (extract_tbr): Likewise.
737 * arch64-opc.c (aarch64_sys_regs): Add "id_mmfr4_el1".
741 * arm-dis.c (print_insn_coprocessor): Avoid negative shift.
745 * ppc-opc.c: Add comment accidentally removed by old commit.
750 * ppc-opc.c: (powerpc_opcodes) <hwsync>: New extended mnemonic.
755 * msp430-dis.c (msp430_nooperands): Fix check for emulated insns.
759 * arm-dis.c (arm_opcodes): Add "setpan".
760 (thumb_opcodes): Add "setpan".
764 * arm-dis.c (select_arm_features): Rework to avoid used of redefined
769 * aarch64-tbl.h (aarch64_feature_rdma): New.
771 (aarch64_opcode_table): Add "sqrmlah" and "sqrdmlsh" instructions.
772 * aarch64-asm-2.c: Regenerate.
773 * aarch64-dis-2.c: Regenerate.
774 * aarch64-opc-2.c: Regenerate.
778 * aarch64-tbl.h (aarch64_feature_lor): New.
780 (aarch64_opdocde_table): Add "ldlar", "ldlarb", "ldlarh", "stllr",
782 * aarch64-asm-2.c: Regenerate.
783 * aarch64-dis-2.c: Regenerate.
784 * aarch64-opc-2.c: Regenerate.
788 * aarch64-opc.c (F_ARCHEXT): New.
789 (aarch64_sys_regs): Add "pan".
790 (aarch64_sys_reg_supported_p): New.
791 (aarch64_pstatefields): Add "pan".
792 (aarch64_pstatefield_supported_p): New.
796 * i386-tbl.h: Regenerate.
800 * i386-dis.c (print_insn): Swap rounding mode specifier and
801 general purpose register in Intel mode.
805 * i386-opc.tbl: New IntelSyntax entries for vcvt{,u}si2s{d,s}.
806 * i386-tbl.h: Regenerate.
810 * i386-opc.tbl: Remove Disp32 from AMD64 direct call/jmp.
811 * i386-init.h: Regenerated.
816 * i386-dis.c: Add comments for '@'.
817 (x86_64_table): Use '@' on call/jmp for X86_64_E8/X86_64_E9.
818 (enum x86_64_isa): New.
820 (print_i386_disassembler_options): Add amd64 and intel64.
821 (print_insn): Handle amd64 and intel64.
823 (OP_J): Don't ignore the operand size prefix for AMD64 in 64-bit.
824 * i386-gen.c (cpu_flags): Add CpuAMD64 and CpuIntel64.
825 * i386-opc.h (AMD64): New.
826 (CpuIntel64): Likewise.
827 (i386_cpu_flags): Add cpuamd64 and cpuintel64.
828 * i386-opc.tbl: Add direct call/jmp with Disp16|Disp32 for AMD64.
829 Mark direct call/jmp without Disp16|Disp32 as Intel64.
830 * i386-init.h: Regenerated.
831 * i386-tbl.h: Likewise.
835 * ppc-opc.c (IH) New define.
836 (powerpc_opcodes) <wait>: Do not enable for POWER7.
837 <tlbie>: Add RS operand for POWER7.
838 <slbia>: Add IH operand for POWER6.
842 * opcodes/i386-opc.tbl (call): Remove Disp16|Disp32 from 64-bit
845 * i386-tbl.h: Regenerated.
849 * configure.ac: Support bfd_iamcu_arch.
850 * disassemble.c (disassembler): Support bfd_iamcu_arch.
851 * i386-gen.c (cpu_flag_init): Add CPU_IAMCU_FLAGS and
852 CPU_IAMCU_COMPAT_FLAGS.
853 (cpu_flags): Add CpuIAMCU.
854 * i386-opc.h (CpuIAMCU): New.
855 (i386_cpu_flags): Add cpuiamcu.
856 * configure: Regenerated.
857 * i386-init.h: Likewise.
858 * i386-tbl.h: Likewise.
863 * i386-dis.c (X86_64_E8): New.
864 (X86_64_E9): Likewise.
865 Update comments on 'T', 'U', 'V'. Add comments for '^'.
866 (dis386): Replace callT/jmpT with X86_64_E8/X86_64_E9.
867 (x86_64_table): Add X86_64_E8 and X86_64_E9.
868 (mod_table): Replace {T|} with ^ on Jcall/Jmp.
870 (OP_J): Ignore the operand size prefix in 64-bit. Don't check
875 * disassemble.c (disassembler): Choose suitable disassembler based
877 * rl78-decode.opc (rl78_decode_opcode): Take ISA parameter. Use
878 it to decode mul/div insns.
879 * rl78-decode.c: Regenerate.
880 * rl78-dis.c (print_insn_rl78): Rename to...
881 (print_insn_rl78_common): ...this, take ISA parameter.
882 (print_insn_rl78): New.
883 (print_insn_rl78_g10): New.
884 (print_insn_rl78_g13): New.
885 (print_insn_rl78_g14): New.
886 (rl78_get_disassembler): New.
890 * po/fr.po: Updated French translation.
894 * ppc-opc.c (DCBT_EO): New define.
895 (powerpc_opcodes) <lbarx>: Enable for POWER8 and later.
899 <waitrsv>: Do not enable for POWER7 and later.
900 <waitimpl>: Likewise.
901 <dcbt>: Default to the two operand form of the instruction for all
902 "old" cpus. For "new" cpus, use the operand ordering that matches
903 whether the cpu is server or embedded.
908 * s390-opc.c: New instruction type VV0UU2.
909 * s390-opc.txt: Fix instruction types for VFCE, VLDE, VFSQ, WFK,
914 * i386-dis.c (putop): Extend "XY" handling to AVX512. Handle "XZ".
915 * i386-dis-evex.h.c (vcvtpd2ps, vcvtqq2ps, vcvttpd2udq,
916 vcvtpd2udq, vcvtuqq2ps, vcvttpd2dq, vcvtpd2dq): Add %XY.
917 (vfpclasspd, vfpclassps): Add %XZ.
921 * i386-dis.c (PREFIX_UD_SHIFT): Removed.
922 (PREFIX_UD_REPZ): Likewise.
923 (PREFIX_UD_REPNZ): Likewise.
924 (PREFIX_UD_DATA): Likewise.
925 (PREFIX_UD_ADDR): Likewise.
926 (PREFIX_UD_LOCK): Likewise.
930 * i386-dis.c (prefix_requirement): Removed.
931 (print_insn): Don't set prefix_requirement. Check
932 dp->prefix_requirement instead of prefix_requirement.
937 * i386-dis.c (PREFIX_0FC7_REG_6): Renamed to ...
938 (PREFIX_MOD_0_0FC7_REG_6): This.
939 (PREFIX_MOD_3_0FC7_REG_6): New.
940 (PREFIX_MOD_3_0FC7_REG_7): Likewise.
941 (prefix_table): Replace PREFIX_0FC7_REG_6 with
942 PREFIX_MOD_0_0FC7_REG_6. Add PREFIX_MOD_3_0FC7_REG_6 and
943 PREFIX_MOD_3_0FC7_REG_7.
944 (mod_table): Replace PREFIX_0FC7_REG_6 with
945 PREFIX_MOD_0_0FC7_REG_6. Use PREFIX_MOD_3_0FC7_REG_6 and
946 PREFIX_MOD_3_0FC7_REG_7.
950 * i386-dis.c (PREFIX_MANDATORY_REPZ): Removed.
951 (PREFIX_MANDATORY_REPNZ): Likewise.
952 (PREFIX_MANDATORY_DATA): Likewise.
953 (PREFIX_MANDATORY_ADDR): Likewise.
954 (PREFIX_MANDATORY_LOCK): Likewise.
955 (PREFIX_MANDATORY): Likewise.
956 (PREFIX_UD_SHIFT): Set to 8
957 (PREFIX_UD_REPZ): Updated.
958 (PREFIX_UD_REPNZ): Likewise.
959 (PREFIX_UD_DATA): Likewise.
960 (PREFIX_UD_ADDR): Likewise.
961 (PREFIX_UD_LOCK): Likewise.
962 (PREFIX_IGNORED_SHIFT): New.
963 (PREFIX_IGNORED_REPZ): Likewise.
964 (PREFIX_IGNORED_REPNZ): Likewise.
965 (PREFIX_IGNORED_DATA): Likewise.
966 (PREFIX_IGNORED_ADDR): Likewise.
967 (PREFIX_IGNORED_LOCK): Likewise.
968 (PREFIX_OPCODE): Likewise.
969 (PREFIX_IGNORED): Likewise.
970 (Bad_Opcode): Replace PREFIX_MANDATORY with 0.
971 (dis386_twobyte): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
972 (three_byte_table): Likewise.
973 (mod_table): Likewise.
974 (mandatory_prefix): Renamed to ...
975 (prefix_requirement): This.
976 (prefix_table): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
977 Update PREFIX_90 entry.
978 (get_valid_dis386): Check prefix_requirement to see if a prefix
980 (print_insn): Replace mandatory_prefix with prefix_requirement.
984 * arm-dis.c (thumb32_opcodes): Define 'D' format control code,
985 use it for ssat and ssat16.
986 (print_insn_thumb32): Add handle case for 'D' control code.
991 * i386-dis-evex.h (evex_table): Fill prefix_requirement field.
992 * i386-dis.c (PREFIX_MANDATORY_REPZ, PREFIX_MANDATORY_REPNZ,
993 PREFIX_MANDATORY_DATA, PREFIX_MANDATORY_ADDR, PREFIX_MANDATORY_LOCK,
994 PREFIX_UD_SHIFT, PREFIX_UD_REPZ, REFIX_UD_REPNZ, PREFIX_UD_DATA,
995 PREFIX_UD_ADDR, PREFIX_UD_LOCK, PREFIX_MANDATORY): Define.
996 (Bad_Opcode, FLOAT, DIS386, DIS386_PREFIX, THREE_BYTE_TABLE_PREFIX):
997 Fill prefix_requirement field.
998 (struct dis386): Add prefix_requirement field.
999 (dis386): Fill prefix_requirement field.
1000 (dis386_twobyte): Ditto.
1001 (twobyte_has_mandatory_prefix_: Remove.
1002 (reg_table): Fill prefix_requirement field.
1003 (prefix_table): Ditto.
1004 (x86_64_table): Ditto.
1005 (three_byte_table): Ditto.
1008 (vex_len_table): Ditto.
1009 (vex_w_table): Ditto.
1011 (bad_opcode): Ditto.
1012 (print_insn): Use prefix_requirement.
1013 (FGRPd9_2, FGRPd9_4, FGRPd9_5, FGRPd9_6, FGRPd9_7, FGRPda_5, FGRPdb_4,
1014 FGRPde_3, FGRPdf_4): Fill prefix_requirement field.
1019 * d10v-opc.c (d10v_reg_name_cnt): Convert old style prototype.
1023 * Makefile.in: Regenerated.
1027 * ppc-dis.c (disassemble_init_powerpc): Only initialise
1028 powerpc_opcd_indices and vle_opcd_indices once.
1032 * ppc-opc.c (powerpc_opcodes): Add slbfee.
1036 * arm-dis.c (opcode32): Updated to use new arm feature struct.
1037 (opcode16): Likewise.
1038 (coprocessor_opcodes): Replace bit with feature struct.
1039 (neon_opcodes): Likewise.
1040 (arm_opcodes): Likewise.
1041 (thumb_opcodes): Likewise.
1042 (thumb32_opcodes): Likewise.
1043 (print_insn_coprocessor): Likewise.
1044 (print_insn_arm): Likewise.
1045 (select_arm_features): Follow new feature struct.
1049 * i386-dis.c (rm_table): Add clzero.
1050 * i386-gen.c (cpu_flag_init): Add new CPU_ZNVER1_FLAGS.
1051 Add CPU_CLZERO_FLAGS.
1052 (cpu_flags): Add CpuCLZERO.
1053 * i386-opc.h: Add CpuCLZERO.
1054 * i386-opc.tbl: Add clzero.
1055 * i386-init.h: Re-generated.
1056 * i386-tbl.h: Re-generated.
1060 * mips-opc.c (decode_mips_operand): Fix constraint issues
1061 with u and y operands.
1065 * mips-opc.c (mips_builtin_opcodes): Add evp and dvp instructions.
1069 * s390-opc.c: Add new IBM z13 instructions.
1070 * s390-opc.txt: Likewise.
1074 * aarch64-tbl.h (aarch64_opcode_table): Remove strub, ldurb, ldursb,
1075 stur, ldur, sturh, ldurh, ldursh, ldursw, prfum F_HAS_ALIAS flag and
1077 * aarch64-asm-2.c: Regenerate.
1078 * aarch64-dis-2.c: Likewise.
1079 * aarch64-opc-2.c: Likewise.
1083 * arm-dis.c (arm_symbol_is_valid): Skip ARM private symbols.
1087 * sh-opc.h (clrs, sets): Mark as arch_sh3_nommu_up instead of
1089 (pref): Mark as arch_sh2a_nofpu_or_sh3_nommu_up instead of
1090 arch_sh2a_nofpu_or_sh4_nommu_nofpu_up.
1094 * rl78-decode.opc (MOV): Added space between two operands for
1095 'mov' instruction in index addressing mode.
1096 * rl78-decode.c: Regenerate.
1100 * microblaze-dis.h [__cplusplus]: Wrap in extern "C".
1105 * microblaze-opcm.h (or, and, xor): Rename to microblaze_or,
1106 microblaze_and, microblaze_xor.
1107 * microblaze-opc.h (opcodes): Adjust.
1111 * Makefile.am: Add FT32 files.
1112 * configure.ac: Handle FT32.
1113 * disassemble.c (disassembler): Call print_insn_ft32.
1114 * ft32-dis.c: New file.
1115 * ft32-opc.c: New file.
1116 * Makefile.in: Regenerate.
1117 * configure: Regenerate.
1118 * po/POTFILES.in: Regenerate.
1122 * nds32-asm.c (keyword_sr): Add new system registers.
1126 * s390-dis.c (s390_extract_operand): Support vector register
1128 (s390_print_insn_with_opcode): Support new operands types and add
1129 new handling of optional operands.
1130 * s390-mkopc.c (s390_opcode_mode_val, s390_opcode_cpu_val): Remove
1131 and include opcode/s390.h instead.
1132 (struct op_struct): New field `flags'.
1133 (insertOpcode, insertExpandedMnemonic): New parameter `flags'.
1134 (dumpTable): Dump flags.
1135 (main): Parse flags from the s390-opc.txt file. Add z13 as cpu
1137 * s390-opc.c: Add new operands types, instruction formats, and
1139 (s390_opformats): Add new formats for .insn.
1140 * s390-opc.txt: Add new instructions.
1144 Update year range in copyright notice of all files.
1146 For older changes see ChangeLog-2014
1148 Copyright (C) 2015 Free Software Foundation, Inc.
1150 Copying and distribution of this file, with or without modification,
1151 are permitted in any medium without royalty provided the copyright
1152 notice and this notice are preserved.
1158 version-control: never