aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1999-11-08 15:40:38 +0000
committerNick Clifton <nickc@gcc.gnu.org>1999-11-08 15:40:38 +0000
commit674fdc14b3a2a3a490a20ad6d2856c5fb0b3da1b (patch)
tree4dfda2c4e0a7b60c889056c78abf1568976a8480 /gcc
parent140b60b42e92daa02621ec13ebdc691f157b1e99 (diff)
downloadgcc-674fdc14b3a2a3a490a20ad6d2856c5fb0b3da1b.zip
gcc-674fdc14b3a2a3a490a20ad6d2856c5fb0b3da1b.tar.gz
gcc-674fdc14b3a2a3a490a20ad6d2856c5fb0b3da1b.tar.bz2
Move prototypes into v850-protos.h
From-SVN: r30450
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/v850/v850.c45
-rw-r--r--gcc/config/v850/v850.h79
-rw-r--r--gcc/config/v850/v850.md7
4 files changed, 30 insertions, 109 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4b8ccbf..8dcaeff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
+
+ * config/v850/v850-protos.h: New file: Prototypes for functions
+ defined in v850.c
+ * config/v850/v850.h: Move prototypes to v850-protos.h
+ * config/v850/v850.c: Move prototypes to v850-protos.h
+ * config/v850/v850.md: Fix compile time warnings.
+
Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
* tree.h (get_containing_scope): Declare it.
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 6306cfc..4e205a5 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -37,51 +37,12 @@ Boston, MA 02111-1307, USA. */
#include "function.h"
#include "obstack.h"
#include "toplev.h"
+#include "v850-protos.h"
#ifndef streq
#define streq(a,b) (strcmp (a, b) == 0)
#endif
-/* Function prototypes that cannot exist in v850.h due to dependency
- compilcations. */
-extern rtx function_arg
- PROTO ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
-extern int function_arg_partial_nregs
- PROTO ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
-extern void asm_file_start PROTO ((FILE *));
-extern void print_operand PROTO ((FILE *, rtx, int ));
-extern void print_operand_address PROTO ((FILE *, rtx));
-extern void v850_output_aligned_bss
- PROTO ((FILE *, tree, char *, int, int));
-extern void v850_output_common
- PROTO ((FILE *, tree, char *, int, int));
-extern void v850_output_local
- PROTO ((FILE *, tree, char *, int, int));
-extern int const_costs PROTO ((rtx, enum rtx_code));
-extern char * output_move_double PROTO ((rtx *));
-extern char * output_move_single PROTO ((rtx *));
-extern int ep_memory_operand
- PROTO ((rtx, enum machine_mode, int));
-extern int reg_or_0_operand PROTO ((rtx, enum machine_mode));
-extern int reg_or_int5_operand PROTO ((rtx, enum machine_mode));
-extern int call_address_operand PROTO ((rtx, enum machine_mode));
-extern int movsi_source_operand PROTO ((rtx, enum machine_mode));
-extern int power_of_two_operand PROTO ((rtx, enum machine_mode));
-extern int not_power_of_two_operand PROTO ((rtx, enum machine_mode));
-extern int special_symbolref_operand PROTO ((rtx, enum machine_mode));
-extern void v850_reorg PROTO ((rtx));
-extern void notice_update_cc PROTO ((rtx, rtx));
-extern int v850_valid_machine_decl_attribute
- PROTO ((tree, tree, tree));
-extern int v850_interrupt_function_p PROTO ((tree));
-extern int pattern_is_ok_for_prologue PROTO ((rtx, enum machine_mode));
-extern int pattern_is_ok_for_epilogue PROTO ((rtx, enum machine_mode));
-extern int register_is_ok_for_epilogue PROTO ((rtx, enum machine_mode));
-extern char * construct_save_jarl PROTO ((rtx));
-extern char * construct_restore_jr PROTO ((rtx));
-extern void v850_encode_data_area PROTO ((tree));
-extern void v850_set_default_decl_attr PROTO ((tree));
-
/* Function prototypes for stupid compilers: */
static void const_double_split
PROTO ((rtx, HOST_WIDE_INT *, HOST_WIDE_INT *));
@@ -1537,7 +1498,7 @@ expand_prologue ()
/* Save/setup global registers for interrupt functions right now */
if (interrupt_handler)
{
- emit_insn (gen_save_interrupt ());
+ emit_insn (gen_save_interrupt ());
actual_fsize -= INTERRUPT_FIXED_SAVE_SIZE;
@@ -3156,7 +3117,7 @@ rtx
v850_va_arg (valist, type)
tree valist, type;
{
- HOST_WIDE_INT size, rsize, align;
+ HOST_WIDE_INT size, rsize;
tree addr, incr;
rtx addr_rtx;
int indirect;
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 22289c3..c172c5d 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -387,7 +387,7 @@ extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max];
If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2,
for any hard reg, then this must be 0 for correct output. */
#define MODES_TIEABLE_P(MODE1, MODE2) \
- (MODE1 == MODE2 || GET_MODE_SIZE (MODE1) <= 4 && GET_MODE_SIZE (MODE2) <= 4)
+ (MODE1 == MODE2 || (GET_MODE_SIZE (MODE1) <= 4 && GET_MODE_SIZE (MODE2) <= 4))
/* Define the classes of registers for register constraints in the
@@ -426,10 +426,11 @@ enum reg_class
This is an initializer for a vector of HARD_REG_SET
of length N_REG_CLASSES. */
-#define REG_CLASS_CONTENTS \
-{ 0x00000000, /* No regs */ \
- 0xffffffff, /* GENERAL_REGS */ \
- 0xffffffff, /* ALL_REGS */ \
+#define REG_CLASS_CONTENTS \
+{ \
+ { 0x00000000 }, /* NO_REGS */ \
+ { 0xffffffff }, /* GENERAL_REGS */ \
+ { 0xffffffff }, /* ALL_REGS */ \
}
/* The same information, inverted:
@@ -886,7 +887,7 @@ extern int current_function_anonymous_args;
register class that does not include r0 on the output. */
#define EXTRA_CONSTRAINT(OP, C) \
- ((C) == 'Q' ? ep_memory_operand (OP, GET_MODE (OP)) \
+ ((C) == 'Q' ? ep_memory_operand (OP, GET_MODE (OP), 0) \
: (C) == 'R' ? special_symbolref_operand (OP, VOIDmode) \
: (C) == 'S' ? (GET_CODE (OP) == SYMBOL_REF && ! ZDA_NAME_P (XSTR (OP, 0))) \
: (C) == 'T' ? 0 \
@@ -1412,7 +1413,7 @@ do { char dstr[30]; \
(TARGET_BIG_SWITCH ? ".long" : ".short"), \
VALUE, REL)
-#define ASM_OUTPUT_ALIGN(FILE,LOG) \
+#define ASM_OUTPUT_ALIGN(FILE, LOG) \
if ((LOG) != 0) \
fprintf (FILE, "\t.align %d\n", (LOG))
@@ -1573,12 +1574,14 @@ enum GHS_section_kind
#define EP_REGNUM 30 /* ep register number */
-#define ENCODE_SECTION_INFO(DECL) \
-do { \
- if ((TREE_STATIC (DECL) || DECL_EXTERNAL (DECL)) \
- && TREE_CODE (DECL) == VAR_DECL) \
- v850_encode_data_area (DECL); \
-} while (0)
+#define ENCODE_SECTION_INFO(DECL) \
+ do \
+ { \
+ if ((TREE_STATIC (DECL) || DECL_EXTERNAL (DECL)) \
+ && TREE_CODE (DECL) == VAR_DECL) \
+ v850_encode_data_area (DECL); \
+ } \
+ while (0)
#define ZDA_NAME_FLAG_CHAR '@'
#define TDA_NAME_FLAG_CHAR '%'
@@ -1617,54 +1620,4 @@ do { \
{ "pattern_is_ok_for_epilogue", { PARALLEL }}, \
{ "register_is_ok_for_epilogue",{ REG }}, \
{ "not_power_of_two_operand", { CONST_INT }},
-
- /* Note, due to dependency and search path conflicts, prototypes
- involving the FILE, rtx or tree types cannot be included here.
- They are included at the start of v850.c */
-extern void asm_file_start ();
-extern void print_operand ();
-extern void print_operand_address ();
-extern int function_arg_partial_nregs ();
-extern int const_costs ();
-extern char * output_move_double ();
-extern char * output_move_single ();
-extern int ep_memory_operand ();
-extern int reg_or_0_operand ();
-extern int reg_or_int5_operand ();
-extern int call_address_operand ();
-extern int movsi_source_operand ();
-extern int power_of_two_operand ();
-extern int not_power_of_two_operand ();
-extern int special_symbolref_operand ();
-extern void v850_reorg ();
-extern void notice_update_cc ();
-extern int v850_valid_machine_decl_attribute ();
-extern int v850_interrupt_function_p ();
-extern int pattern_is_ok_for_prologue ();
-extern int pattern_is_ok_for_epilogue ();
-extern int register_is_ok_for_epilogue ();
-extern char * construct_save_jarl ();
-extern char * construct_restore_jr ();
-
-extern void override_options PROTO ((void));
-extern int compute_register_save_size PROTO ((long *));
-extern int compute_frame_size PROTO ((int, long *));
-extern void expand_prologue PROTO ((void));
-extern void expand_epilogue PROTO ((void));
-
-extern void v850_output_aligned_bss ();
-extern void v850_output_common ();
-extern void v850_output_local ();
-extern void sdata_section PROTO ((void));
-extern void rosdata_section PROTO ((void));
-extern void sbss_section PROTO ((void));
-extern void tdata_section PROTO ((void));
-extern void zdata_section PROTO ((void));
-extern void rozdata_section PROTO ((void));
-extern void zbss_section PROTO ((void));
-extern int v850_handle_pragma PROTO ((int (*)(void), void (*)(int), char *));
-extern void v850_encode_data_area ();
-extern void v850_set_default_decl_attr ();
-extern v850_data_area v850_get_data_area ();
-extern struct rtx_def *v850_va_arg ();
diff --git a/gcc/config/v850/v850.md b/gcc/config/v850/v850.md
index d1df676..4308e07 100644
--- a/gcc/config/v850/v850.md
+++ b/gcc/config/v850/v850.md
@@ -159,7 +159,6 @@
|| CONST_OK_FOR_K (INTVAL (operands[1]))
|| CONST_OK_FOR_L (INTVAL (operands[1])))))
{
- rtx high;
rtx temp;
if (reload_in_progress || reload_completed)
@@ -950,7 +949,7 @@
emit_insn (gen_addsi3 (reg, reg, tableaddress));
/* Load the table entry. */
mem = gen_rtx_MEM (CASE_VECTOR_MODE, reg);
- RTX_UNCHANGING_P (mem);
+ RTX_UNCHANGING_P (mem) = 1;
if (! TARGET_BIG_SWITCH)
{
rtx reg2 = gen_reg_rtx (HImode);
@@ -974,7 +973,7 @@
""
"
{
- if (! call_address_operand (XEXP (operands[0], 0))
+ if (! call_address_operand (XEXP (operands[0], 0), QImode)
|| TARGET_LONG_CALLS)
XEXP (operands[0], 0) = force_reg (SImode, XEXP (operands[0], 0));
if (TARGET_LONG_CALLS)
@@ -1026,7 +1025,7 @@
""
"
{
- if (! call_address_operand (XEXP (operands[1], 0))
+ if (! call_address_operand (XEXP (operands[1], 0), QImode)
|| TARGET_LONG_CALLS)
XEXP (operands[1], 0) = force_reg (SImode, XEXP (operands[1], 0));
if (TARGET_LONG_CALLS)