[gas][arm] Add -mwarn-restrict-it
Add a -m{no-}warn-restrict-it option to control IT related warnings in ARMv8-A and ARMv8-R. This is disabled by default. Committed on behalf of Wilco Dijkstra. gas/ChangeLog: 2019-12-11 Wilco Dijkstra <wdijkstr@arm.com> * config/tc-arm.c (warn_on_restrict_it): Add new variable. (it_fsm_post_encode): Check warn_on_restrict_it. (arm_option_table): Add -mwarn-restrict-it/-mno-warn-restrict-it. * testsuite/gas/arm/armv8-2-fp16-scalar-bad.d: Add -mwarn-restrict-it. * testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d: Likewise. * testsuite/gas/arm/armv8-a-bad.d: Likewise. * testsuite/gas/arm/armv8-a-it-bad.d: Likewise. * testsuite/gas/arm/armv8-r-bad.d: Likewise. * testsuite/gas/arm/armv8-r-it-bad.d: Likewise. * testsuite/gas/arm/sp-pc-validations-bad-t-v8a.d: Likewise. * testsuite/gas/arm/udf.d: Likewise.
This commit is contained in:
parent
2e74427698
commit
24f19ccb89
@ -1,3 +1,17 @@
|
||||
2019-12-11 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* config/tc-arm.c (warn_on_restrict_it): Add new variable.
|
||||
(it_fsm_post_encode): Check warn_on_restrict_it.
|
||||
(arm_option_table): Add -mwarn-restrict-it/-mno-warn-restrict-it.
|
||||
* testsuite/gas/arm/armv8-2-fp16-scalar-bad.d: Add -mwarn-restrict-it.
|
||||
* testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d: Likewise.
|
||||
* testsuite/gas/arm/armv8-a-bad.d: Likewise.
|
||||
* testsuite/gas/arm/armv8-a-it-bad.d: Likewise.
|
||||
* testsuite/gas/arm/armv8-r-bad.d: Likewise.
|
||||
* testsuite/gas/arm/armv8-r-it-bad.d: Likewise.
|
||||
* testsuite/gas/arm/sp-pc-validations-bad-t-v8a.d: Likewise.
|
||||
* testsuite/gas/arm/udf.d: Likewise.
|
||||
|
||||
2018-12-11 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (md_assemble): Extend SSE check conditional.
|
||||
|
@ -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;
|
||||
@ -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}
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Invalid armv8.2-a scalar fp16
|
||||
#source: armv8-2-fp16-scalar-bad.s
|
||||
#as: -march=armv8.2-a+fp16
|
||||
#as: -march=armv8.2-a+fp16 -mwarn-restrict-it
|
||||
#error_output: armv8-2-fp16-scalar-bad.l
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Invalid armv8.2-a scalar fp16
|
||||
#source: armv8-2-fp16-scalar-bad.s
|
||||
#as: -march=armv8.2-a+fp16 -mfpu=fp-armv8
|
||||
#as: -march=armv8.2-a+fp16 -mfpu=fp-armv8 -mwarn-restrict-it
|
||||
#error_output: armv8-2-fp16-scalar-bad.l
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Invalid v8-a
|
||||
#source: armv8-ar-bad.s
|
||||
#as: -march=armv8-a
|
||||
#as: -march=armv8-a -mwarn-restrict-it
|
||||
#error_output: armv8-ar-bad.l
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Deprecated IT blocks (ARM v8)
|
||||
#source: armv8-ar-it-bad.s
|
||||
#error_output: armv8-ar-it-bad.l
|
||||
#as: -march=armv8-a -mimplicit-it=always
|
||||
#as: -march=armv8-a -mimplicit-it=always -mwarn-restrict-it
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Invalid v8-r
|
||||
#source: armv8-ar-bad.s
|
||||
#as: -march=armv8-r
|
||||
#as: -march=armv8-r -mwarn-restrict-it
|
||||
#error_output: armv8-ar-bad.l
|
||||
|
@ -1,4 +1,4 @@
|
||||
#name: Deprecated IT blocks (ARM v8)
|
||||
#source: armv8-ar-it-bad.s
|
||||
#error_output: armv8-ar-it-bad.l
|
||||
#as: -march=armv8-r -mimplicit-it=always
|
||||
#as: -march=armv8-r -mimplicit-it=always -mwarn-restrict-it
|
||||
|
@ -1,4 +1,4 @@
|
||||
# as: -march=armv8-a
|
||||
# as: -march=armv8-a -mwarn-restrict-it
|
||||
# name: Invalid SP and PC operands test - THUMB (v8a)
|
||||
# source: sp-pc-validations-bad-t.s
|
||||
# error_output: sp-pc-validations-bad-t-v8a.l
|
||||
|
@ -1,6 +1,6 @@
|
||||
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||
#name: UDF
|
||||
#as: -march=armv8-a
|
||||
#as: -march=armv8-a -mwarn-restrict-it
|
||||
#warning_output: udf.l
|
||||
#skip: *-*-pe *-*-wince
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user