Implement Read/Write constraints on system registers on AArch64
[deliverable/binutils-gdb.git] / opcodes / ChangeLog
index a6000cebbc8ef6bf353fed20d2cebf65c0b3a83c..6baa67ed036caad9c46302f04630f836bdf9f2f1 100644 (file)
@@ -1,3 +1,128 @@
+2018-05-15  Tamar Christina  <tamar.christina@arm.com>
+
+       PR binutils/21446
+       * aarch64-asm.c (opintl.h): Include.
+       (aarch64_ins_sysreg): Enforce read/write constraints.
+       * aarch64-dis.c (aarch64_ext_sysreg): Likewise.
+       * aarch64-opc.h (F_DEPRECATED, F_ARCHEXT, F_HASXT): Moved here.
+       (F_REG_READ, F_REG_WRITE): New.
+       * aarch64-opc.c (aarch64_print_operand): Generate notes for
+       AARCH64_OPND_SYSREG.
+       (F_DEPRECATED, F_ARCHEXT, F_HASXT): Move to aarch64-opc.h.
+       (aarch64_sys_regs): Add constraints to currentel, midr_el1, ctr_el0,
+       mpidr_el1, revidr_el1, aidr_el1, dczid_el0, id_dfr0_el1, id_pfr0_el1,
+       id_pfr1_el1, id_afr0_el1, id_mmfr0_el1, id_mmfr1_el1, id_mmfr2_el1,
+       id_mmfr3_el1, id_mmfr4_el1, id_isar0_el1, id_isar1_el1, id_isar2_el1,
+       id_isar3_el1, id_isar4_el1, id_isar5_el1, mvfr0_el1, mvfr1_el1,
+       mvfr2_el1, ccsidr_el1, id_aa64pfr0_el1, id_aa64pfr1_el1,
+       id_aa64dfr0_el1, id_aa64dfr1_el1, id_aa64isar0_el1, id_aa64isar1_el1,
+       id_aa64mmfr0_el1, id_aa64mmfr1_el1, id_aa64mmfr2_el1, id_aa64afr0_el1,
+       id_aa64afr0_el1, id_aa64afr1_el1, id_aa64zfr0_el1, clidr_el1,
+       csselr_el1, vsesr_el2, erridr_el1, erxfr_el1, rvbar_el1, rvbar_el2,
+       rvbar_el3, isr_el1, tpidrro_el0, cntfrq_el0, cntpct_el0, cntvct_el0,
+       mdccsr_el0, dbgdtrrx_el0, dbgdtrtx_el0, osdtrrx_el1, osdtrtx_el1,
+       mdrar_el1, oslar_el1, oslsr_el1, dbgauthstatus_el1, pmbidr_el1,
+       pmsidr_el1, pmswinc_el0, pmceid0_el0, pmceid1_el0.
+       * aarch64-tbl.h (aarch64_opcode_table): Add constraints to
+       msr (F_SYS_WRITE), mrs (F_SYS_READ).
+
+2018-05-15  Tamar Christina  <tamar.christina@arm.com>
+
+       PR binutils/21446
+       * aarch64-dis.c (no_notes: New.
+       (parse_aarch64_dis_option): Support notes.
+       (aarch64_decode_insn, print_operands): Likewise.
+       (print_aarch64_disassembler_options): Document notes.
+       * aarch64-opc.c (aarch64_print_operand): Support notes.
+
+2018-05-15  Tamar Christina  <tamar.christina@arm.com>
+
+       PR binutils/21446
+       * aarch64-asm.h (aarch64_insert_operand, aarch64_##x): Return boolean
+       and take error struct.
+       * aarch64-asm.c (aarch64_ext_regno, aarch64_ins_reglane,
+       aarch64_ins_reglist, aarch64_ins_ldst_reglist,
+       aarch64_ins_ldst_reglist_r, aarch64_ins_ldst_elemlist,
+       aarch64_ins_advsimd_imm_shift, aarch64_ins_imm, aarch64_ins_imm_half,
+       aarch64_ins_advsimd_imm_modified, aarch64_ins_fpimm,
+       aarch64_ins_imm_rotate1, aarch64_ins_imm_rotate2, aarch64_ins_fbits,
+       aarch64_ins_aimm, aarch64_ins_limm_1, aarch64_ins_limm,
+       aarch64_ins_inv_limm, aarch64_ins_ft, aarch64_ins_addr_simple,
+       aarch64_ins_addr_regoff, aarch64_ins_addr_offset, aarch64_ins_addr_simm,
+       aarch64_ins_addr_simm10, aarch64_ins_addr_uimm12,
+       aarch64_ins_simd_addr_post, aarch64_ins_cond, aarch64_ins_sysreg,
+       aarch64_ins_pstatefield, aarch64_ins_sysins_op, aarch64_ins_barrier,
+       aarch64_ins_prfop, aarch64_ins_hint, aarch64_ins_reg_extended,
+       aarch64_ins_reg_shifted, aarch64_ins_sve_addr_ri_s4xvl,
+       aarch64_ins_sve_addr_ri_s6xvl, aarch64_ins_sve_addr_ri_s9xvl,
+       aarch64_ins_sve_addr_ri_s4, aarch64_ins_sve_addr_ri_u6,
+       aarch64_ins_sve_addr_rr_lsl, aarch64_ins_sve_addr_rz_xtw,
+       aarch64_ins_sve_addr_zi_u5, aarch64_ext_sve_addr_zz,
+       aarch64_ins_sve_addr_zz_lsl, aarch64_ins_sve_addr_zz_sxtw,
+       aarch64_ins_sve_addr_zz_uxtw, aarch64_ins_sve_aimm,
+       aarch64_ins_sve_asimm, aarch64_ins_sve_index, aarch64_ins_sve_limm_mov,
+       aarch64_ins_sve_quad_index, aarch64_ins_sve_reglist,
+       aarch64_ins_sve_scale, aarch64_ins_sve_shlimm, aarch64_ins_sve_shrimm,
+       aarch64_ins_sve_float_half_one, aarch64_ins_sve_float_half_two,
+       aarch64_ins_sve_float_zero_one, aarch64_opcode_encode): Likewise.
+       * aarch64-dis.h (aarch64_extract_operand, aarch64_##x): Likewise.
+       * aarch64-dis.c (aarch64_ext_regno, aarch64_ext_reglane,
+       aarch64_ext_reglist, aarch64_ext_ldst_reglist,
+       aarch64_ext_ldst_reglist_r, aarch64_ext_ldst_elemlist,
+       aarch64_ext_advsimd_imm_shift, aarch64_ext_imm, aarch64_ext_imm_half,
+       aarch64_ext_advsimd_imm_modified, aarch64_ext_fpimm,
+       aarch64_ext_imm_rotate1, aarch64_ext_imm_rotate2, aarch64_ext_fbits,
+       aarch64_ext_aimm, aarch64_ext_limm_1, aarch64_ext_limm, decode_limm,
+       aarch64_ext_inv_limm, aarch64_ext_ft, aarch64_ext_addr_simple,
+       aarch64_ext_addr_regoff, aarch64_ext_addr_offset, aarch64_ext_addr_simm,
+       aarch64_ext_addr_simm10, aarch64_ext_addr_uimm12,
+       aarch64_ext_simd_addr_post, aarch64_ext_cond, aarch64_ext_sysreg,
+       aarch64_ext_pstatefield, aarch64_ext_sysins_op, aarch64_ext_barrier,
+       aarch64_ext_prfop, aarch64_ext_hint, aarch64_ext_reg_extended,
+       aarch64_ext_reg_shifted, aarch64_ext_sve_addr_ri_s4xvl,
+       aarch64_ext_sve_addr_ri_s6xvl, aarch64_ext_sve_addr_ri_s9xvl,
+       aarch64_ext_sve_addr_ri_s4, aarch64_ext_sve_addr_ri_u6,
+       aarch64_ext_sve_addr_rr_lsl, aarch64_ext_sve_addr_rz_xtw,
+       aarch64_ext_sve_addr_zi_u5, aarch64_ext_sve_addr_zz,
+       aarch64_ext_sve_addr_zz_lsl, aarch64_ext_sve_addr_zz_sxtw,
+       aarch64_ext_sve_addr_zz_uxtw, aarch64_ext_sve_aimm,
+       aarch64_ext_sve_asimm, aarch64_ext_sve_index, aarch64_ext_sve_limm_mov,
+       aarch64_ext_sve_quad_index, aarch64_ext_sve_reglist,
+       aarch64_ext_sve_scale, aarch64_ext_sve_shlimm, aarch64_ext_sve_shrimm,
+       aarch64_ext_sve_float_half_one, aarch64_ext_sve_float_half_two,
+       aarch64_ext_sve_float_zero_one, aarch64_opcode_decode): Likewise.
+       (determine_disassembling_preference, aarch64_decode_insn,
+       print_insn_aarch64_word, print_insn_data): Take errors struct.
+       (print_insn_aarch64): Use errors.
+       * aarch64-asm-2.c: Regenerate.
+       * aarch64-dis-2.c: Regenerate.
+       * aarch64-gen.c (print_operand_inserter): Use errors and change type to
+       boolean in aarch64_insert_operan.
+       (print_operand_extractor): Likewise.
+       * aarch64-opc.c (aarch64_print_operand): Use sysreg struct.
+
+2018-05-15  Francois H. Theron  <francois.theron@netronome.com>
+
+       * nfp-dis.c: Use uint64_t for instruction variables, not bfd_vma.
+
+2018-05-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * i386-opc.tbl: Remove Disp<N> from movidir{i,64b}.
+
+2018-05-09  Sebastian Rasmussen  <sebras@gmail.com>
+
+       * cr16-opc.c (cr16_instruction): Comment typo fix.
+       * hppa-dis.c (print_insn_hppa): Likewise.
+
+2018-05-08  Jim Wilson  <jimw@sifive.com>
+
+       * riscv-opc.c (match_c_slli, match_slli_as_c_slli): New.
+       (match_c_slli64, match_srxi_as_c_srxi): New.
+       (riscv_opcodes) <slli, sll>: Use match_slli_as_c_slli.
+       <srli, srl, srai, sra>: Use match_srxi_as_c_srxi.
+       <c.slli, c.srli, c.srai>: Use match_s_slli.
+       <c.slli64, c.srli64, c.srai64>: New.
+
 2018-05-08  Alan Modra  <amodra@gmail.com>
 
        * ppc-dis.c (PPC_OPCD_SEGS): Define using PPC_OP.
This page took 0.039675 seconds and 4 git commands to generate.