From f7cb161ea6ffee167de3126023b2ce0fffd84076 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus Date: Mon, 10 Aug 2020 16:20:17 +0100 Subject: [aarch64] GAS doesn't validate the architecture version for any tlbi registers. Fixed with this patch. * gas/config/tc-aarch64.c (parse_sys_reg): Call to aarch64_sys_ins_reg_supported_p instead of aarch64_sys_reg_supported_p. (parse_sys_ins_reg): Add aarch64_sys_reg_deprecated_p check. * include/opcode/aarch64.h (aarch64_sys_reg_deprecated_p): Functions paramaters changed. (aarch64_sys_reg_supported_p): Function removed. (aarch64_sys_ins_reg_supported_p): Functions paramaters changed. * opcodes/aarch64-opc.c (aarch64_print_operand): (aarch64_sys_reg_deprecated_p): Functions paramaters changed. (aarch64_sys_reg_supported_p): Function removed. (aarch64_sys_ins_reg_supported_p): Functions paramaters changed. (aarch64_sys_ins_reg_supported_p): Merged aarch64_sys_reg_supported_p into this function. * gas/testsuite/gas/aarch64/illegal-sysreg-5.d: New test. * gas/testsuite/gas/aarch64/illegal-sysreg-5.l: New test. * gas/testsuite/gas/aarch64/sysreg-5.s: New test. --- include/ChangeLog | 7 +++++++ include/opcode/aarch64.h | 8 +++----- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/ChangeLog b/include/ChangeLog index 035e2b9..27f14cc 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2020-08-10 Przemyslaw Wirkus + + * opcode/aarch64.h (aarch64_sys_reg_deprecated_p): Functions + paramaters changed. + (aarch64_sys_reg_supported_p): Function removed. + (aarch64_sys_ins_reg_supported_p): Functions paramaters changed. + 2020-07-28 Caroline Tice * dwarf2.h (enum dwarf_sect_v5): A new enum section for the diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 1e6ea19..4b71f93 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -956,9 +956,7 @@ typedef struct extern const aarch64_sys_reg aarch64_sys_regs []; extern const aarch64_sys_reg aarch64_pstatefields []; -extern bfd_boolean aarch64_sys_reg_deprecated_p (const aarch64_sys_reg *); -extern bfd_boolean aarch64_sys_reg_supported_p (const aarch64_feature_set, - const aarch64_sys_reg *); +extern bfd_boolean aarch64_sys_reg_deprecated_p (const uint32_t); extern bfd_boolean aarch64_pstatefield_supported_p (const aarch64_feature_set, const aarch64_sys_reg *); @@ -971,8 +969,8 @@ typedef struct extern bfd_boolean aarch64_sys_ins_reg_has_xt (const aarch64_sys_ins_reg *); extern bfd_boolean -aarch64_sys_ins_reg_supported_p (const aarch64_feature_set, - const aarch64_sys_ins_reg *); +aarch64_sys_ins_reg_supported_p (const aarch64_feature_set, aarch64_insn, + uint32_t, aarch64_feature_set); extern const aarch64_sys_ins_reg aarch64_sys_regs_ic []; extern const aarch64_sys_ins_reg aarch64_sys_regs_dc []; -- cgit v1.1