MSP430: Fix whitespace errors and incorrect indentation in config/msp430/*.{c,h} files

2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	MSP430: Fix whitespace errors and incorrect indentation in
	config/msp430/*.{c,h} files

	* config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
	(msp430_select_hwmult_lib): Likewise.
	* config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
	(msp430_extract_mcu_data): Likewise.
	(struct t_msp430_mcu_data): Likewise.
	* config/msp430/msp430.c (struct machine_function): Remove whitespace
	before left square bracket.
	(msp430_option_override): Fix indentation.
	(msp430_hard_regno_nregs_with_padding): Likewise.
	(msp430_initial_elimination_offset): Likewise.
	(msp430_special_register_convention_p): Remove whitespace before left
	square bracket and after exclamation mark.
	(msp430_evaluate_arg): Likewise.
	(msp430_callee_copies): Fix indentation.
	(msp430_gimplify_va_arg_expr): Likewise.
	(msp430_function_arg_advance): Remove whitespace before left square
	bracket.
	(reg_ok_for_addr): Likewise.
	(msp430_preserve_reg_p): Likewise.
	(msp430_compute_frame_info): Likewise.
	(msp430_asm_output_addr_const_extra): Add space between function name
	and open parenthesis.
	(has_section_name): Fix indentation.
	(msp430_attr): Remove trailing whitespace.
	(msp430_section_attr): Likewise.
	(msp430_data_attr): Likewise.
	(struct msp430_attribute_table): Fix comment and whitespace.
	(msp430_start_function): Remove whitespace before left square bracket.
	Add space between function name and open parenthesis.
	(msp430_select_section): Remove trailing whitespace.
	(msp430_section_type_flags): Remove trailing whitespace.
	(msp430_unique_section): Remove space before closing parenthesis.
	(msp430_output_aligned_decl_common): Change 8 spaces to a tab.
	(msp430_builtins): Remove whitespace before left square bracket.
	(msp430_init_builtins):	Fix indentation.
	(msp430_expand_prologue): Remove whitespace before left square bracket.
	Remove space before closing parenthesis.
	(msp430_expand_epilogue): Remove whitespace before left square bracket.
	(msp430_split_movsi): Remove space before closing parenthesis.
	(helper_function_name_mappings): Fix indentation.
	(msp430_use_f5_series_hwmult): Fix whitespace.
	(use_32bit_hwmult): Likewise.
	(msp430_no_hwmult): Likewise.
	(msp430_output_labelref): Remove whitespace before left square bracket.
	(msp430_print_operand_raw): Likewise.
	(msp430_print_operand_addr): Likewise.
	(msp430_print_operand): Add two spaces after '.' in comment.
	Fix trailing whitespace.
	(msp430x_extendhisi): Fix indentation.
	* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
	tab.
	(PC_REGNUM): Likewise.
	(STACK_POINTER_REGNUM): Likewise.
	(CC_REGNUM): Likewise.

From-SVN: r274536
This commit is contained in:
Jozef Lawrynowicz 2019-08-15 12:55:33 +00:00 committed by Jozef Lawrynowicz
parent 8ed1d2fa2b
commit 81a8845cc0
5 changed files with 918 additions and 861 deletions

View File

@ -1,3 +1,63 @@
2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
MSP430: Fix whitespace errors and incorrect indentation in
config/msp430/*.{c,h} files
* config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
(msp430_select_hwmult_lib): Likewise.
* config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
(msp430_extract_mcu_data): Likewise.
(struct t_msp430_mcu_data): Likewise.
* config/msp430/msp430.c (struct machine_function): Remove whitespace
before left square bracket.
(msp430_option_override): Fix indentation.
(msp430_hard_regno_nregs_with_padding): Likewise.
(msp430_initial_elimination_offset): Likewise.
(msp430_special_register_convention_p): Remove whitespace before left
square bracket and after exclamation mark.
(msp430_evaluate_arg): Likewise.
(msp430_callee_copies): Fix indentation.
(msp430_gimplify_va_arg_expr): Likewise.
(msp430_function_arg_advance): Remove whitespace before left square
bracket.
(reg_ok_for_addr): Likewise.
(msp430_preserve_reg_p): Likewise.
(msp430_compute_frame_info): Likewise.
(msp430_asm_output_addr_const_extra): Add space between function name
and open parenthesis.
(has_section_name): Fix indentation.
(msp430_attr): Remove trailing whitespace.
(msp430_section_attr): Likewise.
(msp430_data_attr): Likewise.
(struct msp430_attribute_table): Fix comment and whitespace.
(msp430_start_function): Remove whitespace before left square bracket.
Add space between function name and open parenthesis.
(msp430_select_section): Remove trailing whitespace.
(msp430_section_type_flags): Remove trailing whitespace.
(msp430_unique_section): Remove space before closing parenthesis.
(msp430_output_aligned_decl_common): Change 8 spaces to a tab.
(msp430_builtins): Remove whitespace before left square bracket.
(msp430_init_builtins): Fix indentation.
(msp430_expand_prologue): Remove whitespace before left square bracket.
Remove space before closing parenthesis.
(msp430_expand_epilogue): Remove whitespace before left square bracket.
(msp430_split_movsi): Remove space before closing parenthesis.
(helper_function_name_mappings): Fix indentation.
(msp430_use_f5_series_hwmult): Fix whitespace.
(use_32bit_hwmult): Likewise.
(msp430_no_hwmult): Likewise.
(msp430_output_labelref): Remove whitespace before left square bracket.
(msp430_print_operand_raw): Likewise.
(msp430_print_operand_addr): Likewise.
(msp430_print_operand): Add two spaces after '.' in comment.
Fix trailing whitespace.
(msp430x_extendhisi): Fix indentation.
* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
tab.
(PC_REGNUM): Likewise.
(STACK_POINTER_REGNUM): Likewise.
(CC_REGNUM): Likewise.
2019-08-15 Richard Biener <rguenther@suse.de>
PR target/91454

View File

@ -47,7 +47,7 @@ msp430_select_cpu (int argc, const char ** argv)
case 1: return "-mcpu=msp430x";
case 2: return "-mcpu=msp430xv2";
default:
gcc_unreachable ();
gcc_unreachable ();
}
}
/* MCU wasn't found, the compiler proper will warn about this. */
@ -85,41 +85,41 @@ msp430_select_hwmult_lib (int argc ATTRIBUTE_UNUSED, const char ** argv ATTRIBUT
int i;
switch (argc)
{
case 1:
if (strcasecmp (argv[0], "default"))
error ("unexpected argument to msp430_select_hwmult_lib: %s", argv[0]);
break;
{
case 1:
if (strcasecmp (argv[0], "default"))
error ("unexpected argument to msp430_select_hwmult_lib: %s", argv[0]);
break;
default:
/* We can get three or more arguments passed to this function.
This happens when the same option is repeated on the command line.
For example:
msp430-elf-gcc -mhwmult=none -mhwmult=16bit foo.c
We have to use the last argument as our selector. */
if (strcasecmp (argv[0], "hwmult") == 0)
{
static struct hwmult_options
default:
/* We can get three or more arguments passed to this function.
This happens when the same option is repeated on the command line.
For example:
msp430-elf-gcc -mhwmult=none -mhwmult=16bit foo.c
We have to use the last argument as our selector. */
if (strcasecmp (argv[0], "hwmult") == 0)
{
const char * name;
const char * lib;
} hwmult_options [] =
{
{ "none", "-lmul_none" },
{ "auto", "-lmul_AUTO" }, /* Should not see this one... */
{ "16bit", "-lmul_16" },
{ "32bit", "-lmul_32" },
{ "f5series", "-lmul_f5" }
};
static struct hwmult_options
{
const char * name;
const char * lib;
} hwmult_options[] =
{
{ "none", "-lmul_none" },
{ "auto", "-lmul_AUTO" }, /* Should not see this one... */
{ "16bit", "-lmul_16" },
{ "32bit", "-lmul_32" },
{ "f5series", "-lmul_f5" }
};
for (i = ARRAY_SIZE (hwmult_options); i--;)
if (strcasecmp (argv[argc - 1], hwmult_options[i].name) == 0)
return hwmult_options[i].lib;
}
else if (strcasecmp (argv[0], "mcu") == 0)
{
msp430_extract_mcu_data (argv[argc - 1]);
if (extracted_mcu_data.name != NULL)
}
else if (strcasecmp (argv[0], "mcu") == 0)
{
msp430_extract_mcu_data (argv[argc - 1]);
if (extracted_mcu_data.name != NULL)
{
switch (extracted_mcu_data.hwmpy)
{
@ -129,21 +129,21 @@ msp430_select_hwmult_lib (int argc ATTRIBUTE_UNUSED, const char ** argv ATTRIBUT
case 4: return "-lmul_32";
case 8: return "-lmul_f5";
default:
/* We have already checked the hwmpy values for
validity in msp430_extract_mcu_data. */
gcc_unreachable ();
/* We have already checked the hwmpy values for
validity in msp430_extract_mcu_data. */
gcc_unreachable ();
break;
}
}
}
else
error ("unexpected first argument to msp430_select_hwmult_lib: %s", argv[0]);
break;
}
else
error ("unexpected first argument to msp430_select_hwmult_lib: %s", argv[0]);
break;
case 0:
error ("msp430_select_hwmult_lib needs one or more arguments");
break;
}
case 0:
error ("msp430_select_hwmult_lib needs one or more arguments");
break;
}
return "-lmul_none";
}

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@ struct GTY(()) machine_function
/* If set, the rest of the fields have been computed. */
int computed;
/* Which registers need to be saved in the pro/epilogue. */
int need_to_save [FIRST_PSEUDO_REGISTER];
int need_to_save[FIRST_PSEUDO_REGISTER];
/* These fields describe the frame layout... */
/* arg pointer */
@ -149,8 +149,8 @@ hwmult_name (unsigned int val)
static void
msp430_option_override (void)
{
/* The MSP430 architecture can safely dereference a NULL pointer. In fact,
there are memory mapped registers there. */
/* The MSP430 architecture can safely dereference a NULL pointer. In fact,
there are memory mapped registers there. */
flag_delete_null_pointer_checks = 0;
init_machine_status = msp430_init_machine_status;
@ -169,44 +169,44 @@ msp430_option_override (void)
{
msp430_extract_mcu_data (target_mcu);
if (extracted_mcu_data.name != NULL)
{
bool xisa = extracted_mcu_data.revision >= 1;
if (extracted_mcu_data.name != NULL)
{
bool xisa = extracted_mcu_data.revision >= 1;
if (msp430_warn_mcu)
{
if (target_cpu && msp430x != xisa)
warning (0, "MCU %qs supports %s ISA but %<-mcpu%> option "
"is set to %s",
target_mcu, xisa ? "430X" : "430", msp430x ? "430X" : "430");
if (msp430_warn_mcu)
{
if (target_cpu && msp430x != xisa)
warning (0, "MCU %qs supports %s ISA but %<-mcpu%> option "
"is set to %s",
target_mcu, xisa ? "430X" : "430", msp430x ? "430X" : "430");
if (extracted_mcu_data.hwmpy == 0
&& msp430_hwmult_type != MSP430_HWMULT_AUTO
&& msp430_hwmult_type != MSP430_HWMULT_NONE)
warning (0, "MCU %qs does not have hardware multiply "
"support, but %<-mhwmult%> is set to %s",
target_mcu,
msp430_hwmult_type == MSP430_HWMULT_SMALL ? "16-bit"
: msp430_hwmult_type == MSP430_HWMULT_LARGE ? "32-bit" : "f5series");
else if (msp430_hwmult_type == MSP430_HWMULT_SMALL
&& extracted_mcu_data.hwmpy != 1
&& extracted_mcu_data.hwmpy != 2)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to 16-bit",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
else if (msp430_hwmult_type == MSP430_HWMULT_LARGE
&& extracted_mcu_data.hwmpy != 4)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to 32-bit",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
else if (msp430_hwmult_type == MSP430_HWMULT_F5SERIES
&& extracted_mcu_data.hwmpy != 8)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to f5series",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
}
msp430x = xisa;
}
if (extracted_mcu_data.hwmpy == 0
&& msp430_hwmult_type != MSP430_HWMULT_AUTO
&& msp430_hwmult_type != MSP430_HWMULT_NONE)
warning (0, "MCU %qs does not have hardware multiply "
"support, but %<-mhwmult%> is set to %s",
target_mcu,
msp430_hwmult_type == MSP430_HWMULT_SMALL ? "16-bit"
: msp430_hwmult_type == MSP430_HWMULT_LARGE ? "32-bit" : "f5series");
else if (msp430_hwmult_type == MSP430_HWMULT_SMALL
&& extracted_mcu_data.hwmpy != 1
&& extracted_mcu_data.hwmpy != 2)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to 16-bit",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
else if (msp430_hwmult_type == MSP430_HWMULT_LARGE
&& extracted_mcu_data.hwmpy != 4)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to 32-bit",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
else if (msp430_hwmult_type == MSP430_HWMULT_F5SERIES
&& extracted_mcu_data.hwmpy != 8)
warning (0, "MCU %qs supports %s hardware multiply, "
"but %<-mhwmult%> is set to f5series",
target_mcu, hwmult_name (extracted_mcu_data.hwmpy));
}
msp430x = xisa;
}
else
{
if (msp430_hwmult_type == MSP430_HWMULT_AUTO)
@ -348,7 +348,7 @@ msp430_hard_regno_nregs_has_padding (int regno ATTRIBUTE_UNUSED,
/* Implements HARD_REGNO_NREGS_WITH_PADDING. */
int
msp430_hard_regno_nregs_with_padding (int regno ATTRIBUTE_UNUSED,
machine_mode mode)
machine_mode mode)
{
if (mode == PSImode)
return 2;
@ -421,7 +421,7 @@ msp430_initial_elimination_offset (int from, int to)
/* Allow for the saved return address. */
rv += (TARGET_LARGE ? 4 : 2);
/* NB/ No need to allow for crtl->args.pretend_args_size.
GCC does that for us. */
GCC does that for us. */
break;
default:
gcc_unreachable ();
@ -531,7 +531,7 @@ msp430_addr_space_convert (rtx op, tree from_type, tree to_type)
/* For each function, we list the gcc version and the TI version on
each line, where we're converting the function names. */
static char const * const special_convention_function_names [] =
static char const * const special_convention_function_names[] =
{
"__muldi3", "__mspabi_mpyll",
"__udivdi3", "__mspabi_divull",
@ -556,8 +556,8 @@ msp430_special_register_convention_p (const char *name)
{
int i;
for (i = 0; special_convention_function_names [i]; i++)
if (! strcmp (name, special_convention_function_names [i]))
for (i = 0; special_convention_function_names[i]; i++)
if (!strcmp (name, special_convention_function_names[i]))
return true;
return false;
@ -653,7 +653,7 @@ msp430_evaluate_arg (cumulative_args_t cap,
{
case 1:
for (i = 0; i < 4; i++)
if (! ca->reg_used [i])
if (!ca->reg_used[i])
{
ca->reg_count = 1;
ca->start_reg = CA_FIRST_REG + i;
@ -662,13 +662,13 @@ msp430_evaluate_arg (cumulative_args_t cap,
break;
case 2:
for (i = 0; i < 3; i++)
if (! ca->reg_used [i] && ! ca->reg_used [i + 1])
if (!ca->reg_used[i] && !ca->reg_used[i + 1])
{
ca->reg_count = 2;
ca->start_reg = CA_FIRST_REG + i;
return;
}
if (! ca->reg_used [3] && ca->can_split)
if (!ca->reg_used[3] && ca->can_split)
{
ca->reg_count = 1;
ca->mem_count = 2;
@ -679,10 +679,10 @@ msp430_evaluate_arg (cumulative_args_t cap,
case 3:
case 4:
ca->can_split = 0;
if (! ca->reg_used [0]
&& ! ca->reg_used [1]
&& ! ca->reg_used [2]
&& ! ca->reg_used [3])
if (!ca->reg_used[0]
&& !ca->reg_used[1]
&& !ca->reg_used[2]
&& !ca->reg_used[3])
{
ca->reg_count = 4;
ca->start_reg = CA_FIRST_REG;
@ -758,9 +758,9 @@ msp430_pass_by_reference (cumulative_args_t cap ATTRIBUTE_UNUSED,
static bool
msp430_callee_copies (cumulative_args_t cap ATTRIBUTE_UNUSED,
machine_mode mode ATTRIBUTE_UNUSED,
const_tree type ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
machine_mode mode ATTRIBUTE_UNUSED,
const_tree type ATTRIBUTE_UNUSED,
bool named ATTRIBUTE_UNUSED)
{
return true;
}
@ -781,7 +781,7 @@ msp430_function_arg_advance (cumulative_args_t cap,
if (ca->start_reg >= CA_FIRST_REG)
for (i = 0; i < ca->reg_count; i ++)
ca->reg_used [i + ca->start_reg - CA_FIRST_REG] = 1;
ca->reg_used[i + ca->start_reg - CA_FIRST_REG] = 1;
ca->special_p = 0;
}
@ -845,7 +845,7 @@ msp430_get_raw_result_mode (int regno ATTRIBUTE_UNUSED)
static tree
msp430_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
gimple_seq *post_p)
gimple_seq *post_p)
{
tree addr, t, type_size, rounded_size, valist_tmp;
unsigned HOST_WIDE_INT align, boundary;
@ -942,7 +942,7 @@ reg_ok_for_addr (rtx r, bool strict)
int rn = REGNO (r);
if (strict && rn >= FIRST_PSEUDO_REGISTER)
rn = reg_renumber [rn];
rn = reg_renumber[rn];
if (strict && 0 <= rn && rn < FIRST_PSEUDO_REGISTER)
return true;
if (!strict)
@ -1036,7 +1036,7 @@ msp430_asm_integer (rtx x, unsigned int size, int aligned_p)
static bool
msp430_asm_output_addr_const_extra (FILE *file ATTRIBUTE_UNUSED, rtx x)
{
debug_rtx(x);
debug_rtx (x);
return false;
}
@ -1146,7 +1146,7 @@ msp430_preserve_reg_p (int regno)
return true;
/* Shouldn't be more than the above, but just in case... */
if (fixed_regs [regno])
if (fixed_regs[regno])
return false;
/* For interrupt functions we must save and restore the used regs that
@ -1163,7 +1163,7 @@ msp430_preserve_reg_p (int regno)
return true;
}
if (!call_used_regs [regno]
if (!call_used_regs[regno]
&& df_regs_ever_live_p (regno))
return true;
@ -1185,11 +1185,11 @@ msp430_compute_frame_info (void)
for (i = 0; i < ARG_POINTER_REGNUM; i ++)
if (msp430_preserve_reg_p (i))
{
cfun->machine->need_to_save [i] = 1;
cfun->machine->need_to_save[i] = 1;
cfun->machine->framesize_regs += (TARGET_LARGE ? 4 : 2);
}
else
cfun->machine->need_to_save [i] = 0;
cfun->machine->need_to_save[i] = 0;
if ((cfun->machine->framesize_locals + cfun->machine->framesize_outgoing) & 1)
cfun->machine->framesize_locals ++;
@ -1264,7 +1264,7 @@ has_section_name (const char * name, tree decl = current_function_decl)
if (decl == NULL_TREE)
return false;
return (DECL_SECTION_NAME (decl)
&& (strcmp (name, DECL_SECTION_NAME (decl)) == 0));
&& (strcmp (name, DECL_SECTION_NAME (decl)) == 0));
}
#undef TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS
@ -1390,7 +1390,7 @@ msp430_attr (tree * node,
warning (OPT_Wattributes, message, name);
* no_add_attrs = true;
}
return NULL_TREE;
}
@ -1448,7 +1448,7 @@ msp430_section_attr (tree * node,
warning (OPT_Wattributes, message, name);
* no_add_attrs = true;
}
return NULL_TREE;
}
@ -1494,7 +1494,7 @@ msp430_data_attr (tree * node,
warning (OPT_Wattributes, message, name);
* no_add_attrs = true;
}
return NULL_TREE;
}
@ -1504,28 +1504,27 @@ msp430_data_attr (tree * node,
/* Table of MSP430-specific attributes. */
const struct attribute_spec msp430_attribute_table[] =
{
/* Name min_num_args type_req, handler
max_num_args, fn_type_req exclude
decl_req affects_type_identity. */
{ ATTR_INTR, 0, 1, true, false, false, false, msp430_attr, NULL },
{ ATTR_NAKED, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_REENT, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_CRIT, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_WAKEUP, 0, 0, true, false, false, false, msp430_attr, NULL },
{
/* { name, min_num_args, max_num_args, decl_req, type_req, fn_type_req,
affects_type_identity, handler, exclude } */
{ ATTR_INTR, 0, 1, true, false, false, false, msp430_attr, NULL },
{ ATTR_NAKED, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_REENT, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_CRIT, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_WAKEUP, 0, 0, true, false, false, false, msp430_attr, NULL },
{ ATTR_LOWER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_UPPER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_EITHER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_LOWER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_UPPER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_EITHER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
{ ATTR_PERSIST, 0, 0, true, false, false, false, msp430_data_attr,
NULL },
{ ATTR_PERSIST, 0, 0, true, false, false, false, msp430_data_attr,
NULL },
{ NULL, 0, 0, false, false, false, false, NULL, NULL }
};
{ NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#undef TARGET_ASM_FUNCTION_PROLOGUE
#define TARGET_ASM_FUNCTION_PROLOGUE msp430_start_function
@ -1563,9 +1562,9 @@ msp430_start_function (FILE *outfile)
n = 0;
fprintf (outfile, "; saved regs:");
for (r = 0; r < ARG_POINTER_REGNUM; r++)
if (cfun->machine->need_to_save [r])
if (cfun->machine->need_to_save[r])
{
fprintf (outfile, " %s", reg_names [r]);
fprintf (outfile, " %s", reg_names[r]);
n = 1;
}
if (n == 0)
@ -1644,7 +1643,7 @@ msp430_start_function (FILE *file, const char *name, tree decl)
}
switch_to_section (function_section (decl));
ASM_OUTPUT_TYPE_DIRECTIVE(file, name, "function");
ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
ASM_OUTPUT_FUNCTION_LABEL (file, name, decl);
}
@ -1738,7 +1737,7 @@ msp430_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
|| TREE_CODE (decl) == VECTOR_CST
|| TREE_CODE (decl) == COMPLEX_CST)
return default_select_section (decl, reloc, align);
/* In large mode we must make sure that interrupt handlers are put into
low memory as the vector table only accepts 16-bit addresses. */
if (TARGET_LARGE && TREE_CODE (decl) == FUNCTION_DECL && is_interrupt_func (decl))
@ -1758,7 +1757,7 @@ msp430_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
else
return default_select_section (decl, reloc, align);
}
const char * sec;
switch (categorize_decl_for_section (decl, reloc))
{
@ -1784,7 +1783,7 @@ msp430_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
default:
gcc_unreachable ();
}
const char * dec_name = DECL_SECTION_NAME (decl);
char * name = ACONCAT ((prefix, sec, dec_name, NULL));
@ -1827,7 +1826,7 @@ msp430_section_type_flags (tree decl, const char * name, int reloc)
return SECTION_WRITE | SECTION_BSS | SECTION_NOTYPE;
else if (strcmp (name, ".persistent") == 0)
return SECTION_WRITE | SECTION_NOTYPE;
return default_section_type_flags (decl, name, reloc);
}
@ -1856,8 +1855,7 @@ msp430_unique_section (tree decl, int reloc)
|| TREE_CODE (decl) == INTEGER_CST
|| TREE_CODE (decl) == VECTOR_CST
|| TREE_CODE (decl) == COMPLEX_CST
|| (prefix = gen_prefix (decl)) == NULL
)
|| (prefix = gen_prefix (decl)) == NULL)
return;
const char * dec_name = DECL_SECTION_NAME (decl);
@ -1871,11 +1869,11 @@ msp430_unique_section (tree decl, int reloc)
equivalent .bss section instead. */
void
msp430_output_aligned_decl_common (FILE * stream,
const tree decl,
const char * name,
msp430_output_aligned_decl_common (FILE * stream,
const tree decl,
const char * name,
unsigned HOST_WIDE_INT size,
unsigned int align)
unsigned int align)
{
if (msp430_data_region == MSP430_REGION_ANY)
{
@ -1933,7 +1931,7 @@ enum msp430_builtin
MSP430_BUILTIN_max
};
static GTY(()) tree msp430_builtins [(int) MSP430_BUILTIN_max];
static GTY(()) tree msp430_builtins[(int) MSP430_BUILTIN_max];
static void
msp430_init_builtins (void)
@ -1943,15 +1941,15 @@ msp430_init_builtins (void)
msp430_builtins[MSP430_BUILTIN_BIC_SR] =
add_builtin_function ( "__bic_SR_register_on_exit", void_ftype_int,
MSP430_BUILTIN_BIC_SR, BUILT_IN_MD, NULL, NULL_TREE);
MSP430_BUILTIN_BIC_SR, BUILT_IN_MD, NULL, NULL_TREE);
msp430_builtins[MSP430_BUILTIN_BIS_SR] =
add_builtin_function ( "__bis_SR_register_on_exit", void_ftype_int,
MSP430_BUILTIN_BIS_SR, BUILT_IN_MD, NULL, NULL_TREE);
MSP430_BUILTIN_BIS_SR, BUILT_IN_MD, NULL, NULL_TREE);
msp430_builtins[MSP430_BUILTIN_DELAY_CYCLES] =
add_builtin_function ( "__delay_cycles", void_ftype_longlong,
MSP430_BUILTIN_DELAY_CYCLES, BUILT_IN_MD, NULL, NULL_TREE);
MSP430_BUILTIN_DELAY_CYCLES, BUILT_IN_MD, NULL, NULL_TREE);
}
static tree
@ -2184,7 +2182,7 @@ msp430_expand_prologue (void)
}
for (i = 15; i >= 4; i--)
if (cfun->machine->need_to_save [i])
if (cfun->machine->need_to_save[i])
{
int seq, count;
rtx note;
@ -2223,7 +2221,7 @@ msp430_expand_prologue (void)
XVECEXP (note, 0, j + 1) =
F (gen_rtx_SET (gen_rtx_MEM (Pmode, addr),
gen_rtx_REG (Pmode, i - j)) );
gen_rtx_REG (Pmode, i - j)));
}
add_reg_note (p, REG_FRAME_RELATED_EXPR, note);
@ -2258,16 +2256,16 @@ msp430_expand_epilogue (int is_eh)
return;
}
if (cfun->machine->need_to_save [10])
if (cfun->machine->need_to_save[10])
{
/* Check for a helper function. */
helper_n = 7; /* For when the loop below never sees a match. */
for (i = 9; i >= 4; i--)
if (!cfun->machine->need_to_save [i])
if (!cfun->machine->need_to_save[i])
{
helper_n = 10 - i;
for (; i >= 4; i--)
if (cfun->machine->need_to_save [i])
if (cfun->machine->need_to_save[i])
{
helper_n = 0;
break;
@ -2311,7 +2309,7 @@ msp430_expand_epilogue (int is_eh)
}
for (i = 4; i <= 15; i++)
if (cfun->machine->need_to_save [i])
if (cfun->machine->need_to_save[i])
{
int seq, count;
@ -2432,7 +2430,7 @@ static struct
int need_430x;
rtx (*genfunc)(rtx,rtx);
}
const_shift_helpers[] =
const_shift_helpers[] =
{
#define CSH(N,C,X,G) { "__mspabi_" N, C, X, gen_##G }
@ -2624,8 +2622,7 @@ msp430_split_movsi (rtx *operands)
/* Catch the case where we are loading (rN, rN+1) from mem (rN). */
|| (REG_P (op00) && reg_mentioned_p (op00, op10))
/* Or storing (rN) into mem (rN). */
|| (REG_P (op10) && reg_mentioned_p (op10, op00))
)
|| (REG_P (op10) && reg_mentioned_p (op10, op00)))
{
operands[2] = op02;
operands[4] = op12;
@ -2650,82 +2647,82 @@ static const struct
char const * const gcc_name;
char const * const ti_name;
}
helper_function_name_mappings [] =
{
/* Floating point to/from integer conversions. */
{ "__truncdfsf2", "__mspabi_cvtdf" },
{ "__extendsfdf2", "__mspabi_cvtfd" },
{ "__fixdfhi", "__mspabi_fixdi" },
{ "__fixdfsi", "__mspabi_fixdli" },
{ "__fixdfdi", "__mspabi_fixdlli" },
{ "__fixunsdfhi", "__mspabi_fixdu" },
{ "__fixunsdfsi", "__mspabi_fixdul" },
{ "__fixunsdfdi", "__mspabi_fixdull" },
{ "__fixsfhi", "__mspabi_fixfi" },
{ "__fixsfsi", "__mspabi_fixfli" },
{ "__fixsfdi", "__mspabi_fixflli" },
{ "__fixunsfhi", "__mspabi_fixfu" },
{ "__fixunsfsi", "__mspabi_fixful" },
{ "__fixunsfdi", "__mspabi_fixfull" },
{ "__floathisf", "__mspabi_fltif" },
{ "__floatsisf", "__mspabi_fltlif" },
{ "__floatdisf", "__mspabi_fltllif" },
{ "__floathidf", "__mspabi_fltid" },
{ "__floatsidf", "__mspabi_fltlid" },
{ "__floatdidf", "__mspabi_fltllid" },
{ "__floatunhisf", "__mspabi_fltuf" },
{ "__floatunsisf", "__mspabi_fltulf" },
{ "__floatundisf", "__mspabi_fltullf" },
{ "__floatunhidf", "__mspabi_fltud" },
{ "__floatunsidf", "__mspabi_fltuld" },
{ "__floatundidf", "__mspabi_fltulld" },
helper_function_name_mappings[] =
{
/* Floating point to/from integer conversions. */
{ "__truncdfsf2", "__mspabi_cvtdf" },
{ "__extendsfdf2", "__mspabi_cvtfd" },
{ "__fixdfhi", "__mspabi_fixdi" },
{ "__fixdfsi", "__mspabi_fixdli" },
{ "__fixdfdi", "__mspabi_fixdlli" },
{ "__fixunsdfhi", "__mspabi_fixdu" },
{ "__fixunsdfsi", "__mspabi_fixdul" },
{ "__fixunsdfdi", "__mspabi_fixdull" },
{ "__fixsfhi", "__mspabi_fixfi" },
{ "__fixsfsi", "__mspabi_fixfli" },
{ "__fixsfdi", "__mspabi_fixflli" },
{ "__fixunsfhi", "__mspabi_fixfu" },
{ "__fixunsfsi", "__mspabi_fixful" },
{ "__fixunsfdi", "__mspabi_fixfull" },
{ "__floathisf", "__mspabi_fltif" },
{ "__floatsisf", "__mspabi_fltlif" },
{ "__floatdisf", "__mspabi_fltllif" },
{ "__floathidf", "__mspabi_fltid" },
{ "__floatsidf", "__mspabi_fltlid" },
{ "__floatdidf", "__mspabi_fltllid" },
{ "__floatunhisf", "__mspabi_fltuf" },
{ "__floatunsisf", "__mspabi_fltulf" },
{ "__floatundisf", "__mspabi_fltullf" },
{ "__floatunhidf", "__mspabi_fltud" },
{ "__floatunsidf", "__mspabi_fltuld" },
{ "__floatundidf", "__mspabi_fltulld" },
/* Floating point comparisons. */
/* GCC uses individual functions for each comparison, TI uses one
compare <=> function. */
/* Floating point comparisons. */
/* GCC uses individual functions for each comparison, TI uses one
compare <=> function. */
/* Floating point arithmatic */
{ "__adddf3", "__mspabi_addd" },
{ "__addsf3", "__mspabi_addf" },
{ "__divdf3", "__mspabi_divd" },
{ "__divsf3", "__mspabi_divf" },
{ "__muldf3", "__mspabi_mpyd" },
{ "__mulsf3", "__mspabi_mpyf" },
{ "__subdf3", "__mspabi_subd" },
{ "__subsf3", "__mspabi_subf" },
/* GCC does not use helper functions for negation */
/* Floating point arithmetic. */
{ "__adddf3", "__mspabi_addd" },
{ "__addsf3", "__mspabi_addf" },
{ "__divdf3", "__mspabi_divd" },
{ "__divsf3", "__mspabi_divf" },
{ "__muldf3", "__mspabi_mpyd" },
{ "__mulsf3", "__mspabi_mpyf" },
{ "__subdf3", "__mspabi_subd" },
{ "__subsf3", "__mspabi_subf" },
/* GCC does not use helper functions for negation. */
/* Integer multiply, divide, remainder. */
{ "__mulhi3", "__mspabi_mpyi" },
{ "__mulsi3", "__mspabi_mpyl" },
{ "__muldi3", "__mspabi_mpyll" },
/* Integer multiply, divide, remainder. */
{ "__mulhi3", "__mspabi_mpyi" },
{ "__mulsi3", "__mspabi_mpyl" },
{ "__muldi3", "__mspabi_mpyll" },
#if 0
/* Clarify signed vs unsigned first. */
{ "__mulhisi3", "__mspabi_mpysl" }, /* gcc doesn't use widening multiply (yet?) */
{ "__mulsidi3", "__mspabi_mpysll" }, /* gcc doesn't use widening multiply (yet?) */
/* Clarify signed vs unsigned first. */
{ "__mulhisi3", "__mspabi_mpysl" }, /* gcc doesn't use widening multiply (yet?) */
{ "__mulsidi3", "__mspabi_mpysll" }, /* gcc doesn't use widening multiply (yet?) */
#endif
{ "__divhi3", "__mspabi_divi" },
{ "__divsi3", "__mspabi_divli" },
{ "__divdi3", "__mspabi_divlli" },
{ "__udivhi3", "__mspabi_divu" },
{ "__udivsi3", "__mspabi_divul" },
{ "__udivdi3", "__mspabi_divull" },
{ "__modhi3", "__mspabi_remi" },
{ "__modsi3", "__mspabi_remli" },
{ "__moddi3", "__mspabi_remlli" },
{ "__umodhi3", "__mspabi_remu" },
{ "__umodsi3", "__mspabi_remul" },
{ "__umoddi3", "__mspabi_remull" },
{ "__divhi3", "__mspabi_divi" },
{ "__divsi3", "__mspabi_divli" },
{ "__divdi3", "__mspabi_divlli" },
{ "__udivhi3", "__mspabi_divu" },
{ "__udivsi3", "__mspabi_divul" },
{ "__udivdi3", "__mspabi_divull" },
{ "__modhi3", "__mspabi_remi" },
{ "__modsi3", "__mspabi_remli" },
{ "__moddi3", "__mspabi_remlli" },
{ "__umodhi3", "__mspabi_remu" },
{ "__umodsi3", "__mspabi_remul" },
{ "__umoddi3", "__mspabi_remull" },
/* Bitwise operations. */
/* Rotation - no rotation support yet. */
/* Logical left shift - gcc already does these itself. */
/* Arithmetic left shift - gcc already does these itself. */
/* Arithmetic right shift - gcc already does these itself. */
/* Bitwise operations. */
/* Rotation - no rotation support yet. */
/* Logical left shift - gcc already does these itself. */
/* Arithmetic left shift - gcc already does these itself. */
/* Arithmetic right shift - gcc already does these itself. */
{ NULL, NULL }
};
{ NULL, NULL }
};
/* Returns true if the current MCU supports an F5xxx series
hardware multiper. */
@ -2734,7 +2731,7 @@ bool
msp430_use_f5_series_hwmult (void)
{
static const char * cached_match = NULL;
static bool cached_result;
static bool cached_result;
if (msp430_hwmult_type == MSP430_HWMULT_F5SERIES)
return true;
@ -2769,7 +2766,7 @@ static bool
use_32bit_hwmult (void)
{
static const char * cached_match = NULL;
static bool cached_result;
static bool cached_result;
if (msp430_hwmult_type == MSP430_HWMULT_LARGE)
return true;
@ -2796,7 +2793,7 @@ static bool
msp430_no_hwmult (void)
{
static const char * cached_match = NULL;
static bool cached_result;
static bool cached_result;
if (msp430_hwmult_type == MSP430_HWMULT_NONE)
return true;
@ -2829,10 +2826,10 @@ msp430_output_labelref (FILE *file, const char *name)
{
int i;
for (i = 0; helper_function_name_mappings [i].gcc_name; i++)
if (strcmp (helper_function_name_mappings [i].gcc_name, name) == 0)
for (i = 0; helper_function_name_mappings[i].gcc_name; i++)
if (strcmp (helper_function_name_mappings[i].gcc_name, name) == 0)
{
name = helper_function_name_mappings [i].ti_name;
name = helper_function_name_mappings[i].ti_name;
break;
}
@ -2874,7 +2871,7 @@ msp430_print_operand_raw (FILE * file, rtx op)
switch (GET_CODE (op))
{
case REG:
fprintf (file, "%s", reg_names [REGNO (op)]);
fprintf (file, "%s", reg_names[REGNO (op)]);
break;
case CONST_INT:
@ -2919,7 +2916,7 @@ msp430_print_operand_addr (FILE * file, machine_mode /*mode*/, rtx addr)
case PLUS:
msp430_print_operand_raw (file, XEXP (addr, 1));
gcc_assert (REG_P (XEXP (addr, 0)));
fprintf (file, "(%s)", reg_names [REGNO (XEXP (addr, 0))]);
fprintf (file, "(%s)", reg_names[REGNO (XEXP (addr, 0))]);
return;
case REG:
@ -3021,7 +3018,7 @@ msp430_print_operand (FILE * file, rtx op, int letter)
break;
}
return;
case 'p': /* Bit position. 0 == 0x01, 3 = 0x08 etc. */
case 'p': /* Bit position. 0 == 0x01, 3 = 0x08 etc. */
gcc_assert (CONST_INT_P (op));
fprintf (file, "#%d", 1 << INTVAL (op));
return;
@ -3170,7 +3167,7 @@ msp430_print_operand (FILE * file, rtx op, int letter)
msp430_print_operand_raw (file, XEXP (op, 0));
fprintf (file, ")");
break;
case 16:
fprintf (file, "#hi (");
msp430_print_operand_raw (file, XEXP (op, 0));
@ -3245,10 +3242,10 @@ msp430x_extendhisi (rtx * operands)
/* Note: This sequence is approximately the same length as invoking a helper
function to perform the sign-extension, as in:
MOV.W %1, %L0
MOV.W %1, r12
CALL __mspabi_srai_15
MOV.W r12, %H0
MOV.W %1, %L0
MOV.W %1, r12
CALL __mspabi_srai_15
MOV.W r12, %H0
but this version does not involve any function calls or using argument
registers, so it reduces register pressure. */

View File

@ -26,10 +26,10 @@
extern bool msp430x;
#endif
#define TARGET_CPU_CPP_BUILTINS() \
do \
{ \
builtin_define ("NO_TRAMPOLINES"); \
#define TARGET_CPU_CPP_BUILTINS() \
do \
{ \
builtin_define ("NO_TRAMPOLINES"); \
builtin_define ("__MSP430__"); \
builtin_define (msp430_mcu_name ()); \
if (msp430x) \
@ -41,7 +41,7 @@ extern bool msp430x;
} \
else \
builtin_assert ("cpu=MSP430"); \
} \
} \
while (0)
#undef STARTFILE_SPEC
@ -305,9 +305,9 @@ enum reg_class
#define INDEX_REG_CLASS GEN_REGS
#define N_REG_CLASSES (int) LIM_REG_CLASSES
#define PC_REGNUM 0
#define STACK_POINTER_REGNUM 1
#define CC_REGNUM 2
#define PC_REGNUM 0
#define STACK_POINTER_REGNUM 1
#define CC_REGNUM 2
#define FRAME_POINTER_REGNUM 4 /* not usually used, call preserved */
#define ARG_POINTER_REGNUM 16
#define STATIC_CHAIN_REGNUM 5 /* FIXME */
@ -439,7 +439,7 @@ typedef struct
do \
{ \
if ((LOG) == 0) \
break; \
break; \
fprintf (STREAM, "\t.balign %d\n", 1 << (LOG)); \
} \
while (0)