From: Richard Kenner Date: Sat, 10 Feb 1996 13:38:57 +0000 (-0500) Subject: (REG_ALLOC_ORDER): Changed back to natural order. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=27383dfc6c2c9d0e2bb842c8bf9e627bbac21af0;p=gcc.git (REG_ALLOC_ORDER): Changed back to natural order. (CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'. (EXIT_IGNORE_STACK): Set to 0. (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK. (MOVE_MAX, MOVE_RATIO): Defined. From-SVN: r11197 --- diff --git a/gcc/config/1750a/1750a.h b/gcc/config/1750a/1750a.h index 997b6c61ca2..46c9ebfc600 100644 --- a/gcc/config/1750a/1750a.h +++ b/gcc/config/1750a/1750a.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. - Copyright (C) 1994, 1995 Free Software Foundation, Inc. - Contributed by O.M.Kellogg, DASA (kellogg@space.otn.dasa.de) + Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Contributed by O.M.Kellogg, DASA (oliver.kellogg@space.otn.dasa.de) This file is part of GNU CC. @@ -206,8 +206,9 @@ extern char *strdup(), *float_label(); registers listed in CALL_USED_REGISTERS, keeping the others available for storage of persistent values. */ -#define REG_ALLOC_ORDER \ +/* #define REG_ALLOC_ORDER \ { 2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + */ /* Return number of consecutive hard regs needed starting at reg REGNO to hold something of mode MODE. @@ -255,8 +256,18 @@ extern char *strdup(), *float_label(); /* Register in which static-chain is passed to a function. */ #define STATIC_CHAIN_REGNUM 13 +/* Place in which caller passes the structure value address. + 0 means push the value on the stack like an argument. + #define STRUCT_VALUE 0 +*/ + /* Register in which address to store a structure value - is passed to a function. */ + arrives in the function. + #define STRUCT_VALUE_INCOMING 0 +*/ + +/* Register in which address to store a structure value + is passed to a function. */ #define STRUCT_VALUE_REGNUM 12 /* Define this to be 1 if all structure return values must be in memory. */ @@ -362,7 +373,9 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA /* Similar, but for floating constants, and defining letter 'G'. Here VALUE is the CONST_DOUBLE rtx itself. */ -#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0 +#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \ + ((C) == 'G' ? ((VALUE) == CONST0_RTX (HFmode) \ + || (VALUE) == CONST0_RTX (TQFmode)) : 0) /* Optional extra constraints for this machine. @@ -599,7 +612,7 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA functions that have frame pointers. No definition is equivalent to always zero. */ -#define EXIT_IGNORE_STACK 1 +#define EXIT_IGNORE_STACK 0 /* This macro generates the assembly code for function exit, on machines that need it. If FUNCTION_EPILOGUE is not defined @@ -732,9 +745,9 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA #ifdef REG_OK_STRICT /* Nonzero if X is a hard reg that can be used as an index. */ -#define REG_OK_FOR_INDEX_P(X) (REGNO (X) >= 12 && REGNO (X) <= 15) +#define REG_OK_FOR_INDEX_P(X) REGNO_OK_FOR_INDEX_P(REGNO(X)) /* Nonzero if X is a hard reg that can be used as a base reg. */ -#define REG_OK_FOR_BASE_P(X) (REGNO (X) > 0 && REGNO (X) <= 15) +#define REG_OK_FOR_BASE_P(X) REGNO_OK_FOR_BASE_P(REGNO(X)) #else @@ -817,8 +830,11 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA /* Max number of bytes we can move from memory to memory in one reasonably fast instruction. */ -/* (was: "1750: not counting the MOV instruction") */ -#define MOVE_MAX 16 +#define MOVE_MAX 65536 + +/* MOVE_RATIO is the number of move instructions that is better than a + block move. */ +#define MOVE_RATIO 4 /* Define this if zero-extension is slow (more than one real instruction). */ /* #define SLOW_ZERO_EXTEND */