> 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(); >