>  Any objections to this version of the patch ?

Fine with me though I think it's worthwhile to have such comments
without -dA but that's my personal impression. I don't care either
way.

cheers
Ramana

>
> Cheers
>  Nick
>
> gcc/ChangeLog
> 2011-10-05  Nick Clifton  <ni...@redhat.com>
>
>        * config/arm/arm.c (EMIT_EABI_ATTRIBUTE): New macro.  Used to
>        emit a .eabi_attribute assembler directive, possibly with a
>        comment attached.
>        (asm_file_start): Use the new macro.
>
>
> Index: gcc/config/arm/arm.c
> ===================================================================
> --- gcc/config/arm/arm.c        (revision 179554)
> +++ gcc/config/arm/arm.c        (working copy)
> @@ -22243,6 +22243,21 @@
>     asm_fprintf (stream, "%U%s", name);
>  }
>
> +/* This macro is used to emit an EABI tag and its associated value.
> +   We emit the numerical value of the tag in case the assembler does not
> +   support textual tags.  (Eg gas prior to 2.20).  If requested we include
> +   the tag name in a comment so that anyone reading the assembler output
> +   will know which tag is being set.  */
> +#define EMIT_EABI_ATTRIBUTE(NAME,NUM,VAL)                              \
> +  do                                                                   \
> +    {                                                                  \
> +      asm_fprintf (asm_out_file, "\t.eabi_attribute %d, %d", NUM, VAL); \
> +      if (flag_verbose_asm || flag_debug_asm)                          \
> +       asm_fprintf (asm_out_file, "\t%s " #NAME, ASM_COMMENT_START);   \
> +      asm_fprintf (asm_out_file, "\n");                                      
>   \
> +    }                                                                  \
> +  while (0)
> +
>  static void
>  arm_file_start (void)
>  {
> @@ -22274,9 +22289,9 @@
>          if (arm_fpu_desc->model == ARM_FP_MODEL_VFP)
>            {
>              if (TARGET_HARD_FLOAT)
> -               asm_fprintf (asm_out_file, "\t.eabi_attribute 27, 3\n");
> +               EMIT_EABI_ATTRIBUTE (Tag_ABI_HardFP_use, 27, 3);
>              if (TARGET_HARD_FLOAT_ABI)
> -               asm_fprintf (asm_out_file, "\t.eabi_attribute 28, 1\n");
> +               EMIT_EABI_ATTRIBUTE (Tag_ABI_VFP_args, 28, 1);
>            }
>        }
>       asm_fprintf (asm_out_file, "\t.fpu %s\n", fpu_name);
> @@ -22285,31 +22300,24 @@
>          are used.  However we don't have any easy way of figuring this out.
>         Conservatively record the setting that would have been used.  */
>
> -      /* Tag_ABI_FP_rounding.  */
>       if (flag_rounding_math)
> -       asm_fprintf (asm_out_file, "\t.eabi_attribute 19, 1\n");
> +       EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_rounding, 19, 1);
> +
>       if (!flag_unsafe_math_optimizations)
>        {
> -         /* Tag_ABI_FP_denomal.  */
> -         asm_fprintf (asm_out_file, "\t.eabi_attribute 20, 1\n");
> -         /* Tag_ABI_FP_exceptions.  */
> -         asm_fprintf (asm_out_file, "\t.eabi_attribute 21, 1\n");
> +         EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_denormal, 20, 1);
> +         EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_exceptions, 21, 1);
>        }
> -      /* Tag_ABI_FP_user_exceptions.  */
>       if (flag_signaling_nans)
> -       asm_fprintf (asm_out_file, "\t.eabi_attribute 22, 1\n");
> -      /* Tag_ABI_FP_number_model.  */
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 23, %d\n",
> -                  flag_finite_math_only ? 1 : 3);
> +       EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_user_exceptions, 22, 1);
>
> -      /* Tag_ABI_align8_needed.  */
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 24, 1\n");
> -      /* Tag_ABI_align8_preserved.  */
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 25, 1\n");
> -      /* Tag_ABI_enum_size.  */
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 26, %d\n",
> -                  flag_short_enums ? 1 : 2);
> +      EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_number_model, 23,
> +                          flag_finite_math_only ? 1 : 3);
>
> +      EMIT_EABI_ATTRIBUTE (Tag_ABI_align8_needed, 24, 1);
> +      EMIT_EABI_ATTRIBUTE (Tag_ABI_align8_preserved, 25, 1);
> +      EMIT_EABI_ATTRIBUTE (Tag_ABI_enum_size, 26, flag_short_enums ? 1 : 2);
> +
>       /* Tag_ABI_optimization_goals.  */
>       if (optimize_size)
>        val = 4;
> @@ -22319,16 +22327,12 @@
>        val = 1;
>       else
>        val = 6;
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 30, %d\n", val);
> +      EMIT_EABI_ATTRIBUTE (Tag_ABI_optimization_goals, 30, val);
>
> -      /* Tag_CPU_unaligned_access.  */
> -      asm_fprintf (asm_out_file, "\t.eabi_attribute 34, %d\n",
> -                  unaligned_access);
> +      EMIT_EABI_ATTRIBUTE (Tag_CPU_unaligned_access, 34, unaligned_access);
>
> -      /* Tag_ABI_FP_16bit_format.  */
>       if (arm_fp16_format)
> -       asm_fprintf (asm_out_file, "\t.eabi_attribute 38, %d\n",
> -                    (int)arm_fp16_format);
> +       EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_16bit_format, 38, (int) 
> arm_fp16_format);
>
>       if (arm_lang_output_object_attributes_hook)
>        arm_lang_output_object_attributes_hook();
>

Reply via email to