Minor formatting tidyups.

From-SVN: r31936
This commit is contained in:
Dmitri Makarov 2000-02-11 22:39:49 +00:00 committed by Nick Clifton
parent 90e7678cd5
commit 914a3b8c0e
4 changed files with 60 additions and 11 deletions

View file

@ -1,3 +1,46 @@
2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
* config/arm/arm.c (arm_init_cumulative_args); New function:
Initlaise the CUMULATIE_ARGS strcuture for a function
defintion.
(arm_function_arg): New function: Determine where to place a
function's argument. Also handles deciding the function's
call cookie.
(current_file_function_operand): New function: Return true if
the symbol is a function which has already been compiled.
(arm_is_long_call_p): New function: Return true if the
indicated function should be called via a long call.
(arm_valid_type_attribute_p): New function: Return true if the
attribute is a valid, arm specific, attribute.
(arm_comp_type_attribute): New function: Return true if the
two types have compatable, arm specific, attributes.
* config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
structure.
(FUNCTION_ARG): Redefine to call arm_function_arg.
(FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
structure field.
(INIT_CUMULATIVE_ARGS): Redefine to call
arm_init_cumulative_args.
(FUNCTION_ARG_ADVANCE): Redefine to use correct structure
field.
(SETUP_INCOMING_VARARGS): Redefine to use correct structure
field.
(ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
functions.
(ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
(VALID_MACHINE_TYPE_ATTRIBUTE): Define.
(COMP_TYPE_ATTRIBUTES): Define.
* config/arm/arm.md (call): Call arm_is_long_call_p to decide
if a long call is needed.
(call_value): Call arm_is_long_call_p to decide if a long call
is needed.
(call_symbol): Call arm_is_long_call_p to decide if a long call
is needed.
* config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
2000-02-11 Denis Chertykov <denisc@overta.ru>
* README.AVR: New file with information about the avr ports.

View file

@ -1,5 +1,5 @@
/* Output routines for GCC for ARM.
Copyright (C) 1991, 93-99, 2000 Free Software Foundation, Inc.
Copyright (C) 1991, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rearnsha@arm.com).
@ -1134,7 +1134,7 @@ arm_gen_constant (code, mode, val, target, source, subtargets, generate)
/* See if two shifts will do 2 or more insn's worth of work. */
if (clear_sign_bit_copies >= 16 && clear_sign_bit_copies < 24)
{
HOST_WIDE_INT shift_mask = ((0xffffffffUL
HOST_WIDE_INT shift_mask = ((0xffffffffUL
<< (32 - clear_sign_bit_copies))
& 0xffffffffUL);
@ -1536,14 +1536,16 @@ arm_function_arg (pcum, mode, type, named)
}
/* Return 1 if the operand is a SYMBOL_REF for a function known to be in
this file. */
/* Return 1 if the operand is a SYMBOL_REF for a function
known to be defined in the current compilation unit. */
static int
current_file_function_operand (sym_ref)
rtx sym_ref;
{
return (SYMBOL_REF_FLAG (sym_ref)
|| sym_ref == XEXP (DECL_RTL (current_function_decl), 0));
/* XXX FIXME - we need some way to determine if SYMREF has already been
compiled. We wanted to used SYMBOL_REF_FLAG but this is already in use
by the constant pool generation code. */
return sym_ref == XEXP (DECL_RTL (current_function_decl), 0);
}
/* Return non-zero if a 32 bit "long call" should be generated for this
@ -6141,7 +6143,7 @@ output_func_epilogue (frame_size)
if (use_return_insn (FALSE) && return_used_this_function
&& (frame_size + current_function_outgoing_args_size) != 0
&& ! (frame_pointer_needed && TARGET_APCS))
abort ();
abort ();
/* Reset the ARM-specific per-function variables. */
current_function_anonymous_args = 0;
@ -6827,7 +6829,7 @@ arm_final_prescan_insn (insn)
case CALL_INSN:
/* If using 32-bit addresses the cc is not preserved over
calls */
calls. */
if (TARGET_APCS_32)
{
/* Succeed if the following insn is the target label,
@ -6858,7 +6860,7 @@ arm_final_prescan_insn (insn)
/* If this is an unconditional branch to the same label, succeed.
If it is to another label, do nothing. If it is conditional,
fail. */
/* XXX Probably, the tests for SET and the PC are unnecessary. */
/* XXX Probably, the tests for SET and the PC are unnecessary. */
scanbody = PATTERN (this_insn);
if (GET_CODE (scanbody) == SET

View file

@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for ARM.
Copyright (C) 1991, 93, 94, 05, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
Copyright (C) 1991, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rearnsha@arm.com)
@ -242,7 +242,10 @@ Unrecognized value in TARGET_CPU_DEFAULT.
{ "subtarget_cpp_spec", SUBTARGET_CPP_SPEC }, \
SUBTARGET_EXTRA_SPECS
#ifndef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS
#endif
#ifndef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC ""
#endif
@ -486,7 +489,7 @@ extern int arm_is_6_or_7;
/* The frame pointer register used in gcc has nothing to do with debugging;
that is controlled by the APCS-FRAME option. */
/* Not fully implemented yet */
/* Not fully implemented yet. */
/* #define CAN_DEBUG_WITHOUT_FP 1 */
#define TARGET_MEM_FUNCTIONS 1

View file

@ -2935,6 +2935,7 @@
: preserve_subexpressions_p ()));
DONE;
}
if (flag_pic
&& (CONSTANT_P (operands[1])
|| symbol_mentioned_p (operands[1])