X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-arm.c;h=16cbac4279ef96d0edff57f83cb20935ae5196eb;hb=62b3f54810e4065cdfe420141df34c97b5abb165;hp=c4ffeeec3a4f28bfa3becc958e0ad0fd9a90b2d8;hpb=0e7aaa728dc23f81a7809f3c5c9b90e85b978a8a;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index c4ffeeec3a..16cbac4279 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -1,5 +1,5 @@ /* tc-arm.c -- Assemble for the ARM - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modified by David Taylor (dtaylor@armltd.co.uk) Cirrus coprocessor mods by Aldy Hernandez (aldyh@redhat.com) @@ -154,6 +154,7 @@ static int pic_code = FALSE; static int fix_v4bx = FALSE; /* Warn on using deprecated features. */ static int warn_on_deprecated = TRUE; +static int warn_on_restrict_it = FALSE; /* Understand CodeComposer Studio assembly syntax. */ bfd_boolean codecomposer_syntax = FALSE; @@ -317,9 +318,9 @@ static const arm_feature_set fpu_neon_ext_v1 = static const arm_feature_set fpu_vfp_v3_or_neon_ext = ARM_FEATURE_COPROC (FPU_NEON_EXT_V1 | FPU_VFP_EXT_V3); static const arm_feature_set mve_ext = - ARM_FEATURE_COPROC (FPU_MVE); + ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE); static const arm_feature_set mve_fp_ext = - ARM_FEATURE_COPROC (FPU_MVE_FP); + ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE_FP); #ifdef OBJ_ELF static const arm_feature_set fpu_vfp_fp16 = ARM_FEATURE_COPROC (FPU_VFP_EXT_FP16); @@ -1942,7 +1943,7 @@ parse_reg_list (char ** strp, enum reg_list_els etype) const char apsr_str[] = "apsr"; int apsr_str_len = strlen (apsr_str); - reg = arm_reg_parse (&str, REGLIST_RN); + reg = arm_reg_parse (&str, REG_TYPE_RN); if (etype == REGLIST_CLRM) { if (reg == REG_SP || reg == REG_PC) @@ -22788,6 +22789,7 @@ it_fsm_post_encode (void) handle_pred_state (); if (now_pred.insn_cond + && warn_on_restrict_it && !now_pred.warn_deprecated && warn_on_deprecated && ARM_CPU_HAS_FEATURE (cpu_variant, arm_ext_v8) @@ -30529,6 +30531,11 @@ struct arm_option_table arm_opts[] = {"mwarn-deprecated", NULL, &warn_on_deprecated, 1, NULL}, {"mno-warn-deprecated", N_("do not warn on use of deprecated feature"), &warn_on_deprecated, 0, NULL}, + + {"mwarn-restrict-it", N_("warn about performance deprecated IT instructions" + " in ARMv8-A and ARMv8-R"), &warn_on_restrict_it, 1, NULL}, + {"mno-warn-restrict-it", NULL, &warn_on_restrict_it, 0, NULL}, + {"mwarn-syms", N_("warn about symbols that match instruction names [default]"), (int *) (& flag_warn_syms), TRUE, NULL}, {"mno-warn-syms", N_("disable warnings about symobls that match instructions"), (int *) (& flag_warn_syms), FALSE, NULL}, {NULL, NULL, NULL, 0, NULL} @@ -31291,12 +31298,11 @@ static const struct arm_ext_table armv8_1m_main_ext_table[] = ARM_ADD ("fp.dp", ARM_FEATURE (0, ARM_EXT2_FP16_INST, FPU_VFP_V5D16 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)), - ARM_EXT ("mve", ARM_FEATURE_COPROC (FPU_MVE), - ARM_FEATURE_COPROC (FPU_MVE | FPU_MVE_FP)), + ARM_EXT ("mve", ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE), + ARM_FEATURE_CORE_HIGH (ARM_EXT2_MVE | ARM_EXT2_MVE_FP)), ARM_ADD ("mve.fp", - ARM_FEATURE (0, ARM_EXT2_FP16_INST, - FPU_MVE | FPU_MVE_FP | FPU_VFP_V5_SP_D16 | - FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)), + ARM_FEATURE (0, ARM_EXT2_FP16_INST | ARM_EXT2_MVE | ARM_EXT2_MVE_FP, + FPU_VFP_V5_SP_D16 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)), { NULL, 0, ARM_ARCH_NONE, ARM_ARCH_NONE } };