Commit 34dd397b by Steven Bosscher

arm.h (EMIT_EABI_ATTRIBUTE): Remove.

	* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
	* config/arm/arm.c: Do not include c-pragma.h.
	(arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
	(arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
	to arm_emit_eabi_attribute.
	* arm-c.c: Do not include output.h.
	(arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
	call to arm_emit_eabi_attribute.
	* config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.

From-SVN: r188823
parent f89dcfd8
2012-06-20 Steven Bosscher <steven@gcc.gnu.org>
* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
* config/arm/arm.c: Do not include c-pragma.h.
(arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
(arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
to arm_emit_eabi_attribute.
* arm-c.c: Do not include output.h.
(arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
call to arm_emit_eabi_attribute.
* config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
2012-06-20 Richard Guenther <rguenther@suse.de>
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
......
......@@ -22,7 +22,6 @@
#include "tm.h"
#include "tm_p.h"
#include "tree.h"
#include "output.h"
#include "c-family/c-common.h"
/* Output C specific EABI object attributes. These can not be done in
......@@ -31,8 +30,8 @@
static void
arm_output_c_attributes (void)
{
EMIT_EABI_ATTRIBUTE (Tag_ABI_PCS_wchar_t, 18,
(int)(TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT));
int wchar_size = (int)(TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT);
arm_emit_eabi_attribute ("Tag_ABI_PCS_wchar_t", 18, wchar_size);
}
......
......@@ -260,4 +260,6 @@ extern bool arm_expand_vec_perm_const (rtx target, rtx op0, rtx op1, rtx sel);
extern bool arm_autoinc_modes_ok_p (enum machine_mode, enum arm_auto_incmodes);
extern void arm_emit_eabi_attribute (const char *, int, int);
#endif /* ! GCC_ARM_PROTOS_H */
......@@ -45,7 +45,6 @@
#include "cgraph.h"
#include "ggc.h"
#include "except.h"
#include "c-family/c-pragma.h" /* ??? */
#include "tm_p.h"
#include "target.h"
#include "target-def.h"
......@@ -23580,6 +23579,23 @@ arm_asm_output_labelref (FILE *stream, const char *name)
asm_fprintf (stream, "%U%s", name);
}
/* This function 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.
This function is not static because arm-c.c needs it too. */
void
arm_emit_eabi_attribute (const char *name, int num, int val)
{
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 %s", ASM_COMMENT_START, name);
asm_fprintf (asm_out_file, "\n");
}
static void
arm_file_start (void)
{
......@@ -23611,9 +23627,9 @@ arm_file_start (void)
if (arm_fpu_desc->model == ARM_FP_MODEL_VFP)
{
if (TARGET_HARD_FLOAT)
EMIT_EABI_ATTRIBUTE (Tag_ABI_HardFP_use, 27, 3);
arm_emit_eabi_attribute ("Tag_ABI_HardFP_use", 27, 3);
if (TARGET_HARD_FLOAT_ABI)
EMIT_EABI_ATTRIBUTE (Tag_ABI_VFP_args, 28, 1);
arm_emit_eabi_attribute ("Tag_ABI_VFP_args", 28, 1);
}
}
asm_fprintf (asm_out_file, "\t.fpu %s\n", fpu_name);
......@@ -23623,22 +23639,23 @@ arm_file_start (void)
Conservatively record the setting that would have been used. */
if (flag_rounding_math)
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_rounding, 19, 1);
arm_emit_eabi_attribute ("Tag_ABI_FP_rounding", 19, 1);
if (!flag_unsafe_math_optimizations)
{
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_denormal, 20, 1);
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_exceptions, 21, 1);
arm_emit_eabi_attribute ("Tag_ABI_FP_denormal", 20, 1);
arm_emit_eabi_attribute ("Tag_ABI_FP_exceptions", 21, 1);
}
if (flag_signaling_nans)
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_user_exceptions, 22, 1);
arm_emit_eabi_attribute ("Tag_ABI_FP_user_exceptions", 22, 1);
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_number_model, 23,
arm_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);
arm_emit_eabi_attribute ("Tag_ABI_align8_needed", 24, 1);
arm_emit_eabi_attribute ("Tag_ABI_align8_preserved", 25, 1);
arm_emit_eabi_attribute ("Tag_ABI_enum_size", 26,
flag_short_enums ? 1 : 2);
/* Tag_ABI_optimization_goals. */
if (optimize_size)
......@@ -23649,12 +23666,14 @@ arm_file_start (void)
val = 1;
else
val = 6;
EMIT_EABI_ATTRIBUTE (Tag_ABI_optimization_goals, 30, val);
arm_emit_eabi_attribute ("Tag_ABI_optimization_goals", 30, val);
EMIT_EABI_ATTRIBUTE (Tag_CPU_unaligned_access, 34, unaligned_access);
arm_emit_eabi_attribute ("Tag_CPU_unaligned_access", 34,
unaligned_access);
if (arm_fp16_format)
EMIT_EABI_ATTRIBUTE (Tag_ABI_FP_16bit_format, 38, (int) arm_fp16_format);
arm_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();
......
......@@ -2191,21 +2191,6 @@ extern int making_const_table;
" %{mcpu=generic-*:-march=%*;" \
" :%{mcpu=*:-mcpu=%*} %{march=*:-march=%*}}"
/* 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)
/* -mcpu=native handling only makes sense with compiler running on
an ARM chip. */
#if defined(__arm__)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment