ARM: fix -masm-syntax-unified (PR88648)

This allows to use unified asm syntax when compiling for the
ARM instruction. This matches documentation and seems what the
initial patch was intended doing when the flag got added.

2019-01-10  Stefan Agner  <stefan@agner.ch>

	PR target/88648
	* config/arm/arm.c (arm_option_override_internal): Force
	opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.

	* gcc.target/arm/pr88648-asm-syntax-unified.c: Add test to
	check if -masm-syntax-unified gets applied properly.

From-SVN: r267804
This commit is contained in:
Stefan Agner 2019-01-10 12:36:42 +01:00 committed by Kyrylo Tkachov
parent 7c4979b2b2
commit ae8792cb3b
4 changed files with 28 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2019-01-10 Stefan Agner <stefan@agner.ch>
PR target/88648
* config/arm/arm.c (arm_option_override_internal): Force
opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2019-01-10 Jakub Jelinek <jakub@redhat.com>
PR c/88568

View file

@ -3101,7 +3101,8 @@ arm_option_override_internal (struct gcc_options *opts,
/* Thumb2 inline assembly code should always use unified syntax.
This will apply to ARM and Thumb1 eventually. */
opts->x_inline_asm_unified = TARGET_THUMB2_P (opts->x_target_flags);
if (TARGET_THUMB2_P (opts->x_target_flags))
opts->x_inline_asm_unified = true;
#ifdef SUBTARGET_OVERRIDE_INTERNAL_OPTIONS
SUBTARGET_OVERRIDE_INTERNAL_OPTIONS;

View file

@ -1,3 +1,9 @@
2019-01-10 Stefan Agner <stefan@agner.ch>
PR target/88648
* gcc.target/arm/pr88648-asm-syntax-unified.c: Add test to
check if -masm-syntax-unified gets applied properly.
2019-01-10 Jakub Jelinek <jakub@redhat.com>
PR c/88568

View file

@ -0,0 +1,14 @@
/* Test for unified syntax assembly generation. */
/* { dg-do compile } */
/* { dg-require-effective-target arm_arch_v7a_ok } */
/* { dg-add-options arm_arch_v7a } */
/* { dg-options "-marm -march=armv7-a -masm-syntax-unified" } */
void test ()
{
asm("nop");
}
/* { dg-final { scan-assembler-times {\.syntax\sunified} 3 } } */
/* { dg-final { scan-assembler-not {\.syntax\sdivided} } } */