--- gcc/config/pdp11/pdp11.h 2018/04/24 18:21:49 1.1 +++ gcc/config/pdp11/pdp11.h 2018/04/24 18:29:22 1.1.1.2 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the pdp-11 - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 1995 Free Software Foundation, Inc. Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). This file is part of GNU CC. @@ -16,7 +16,8 @@ GNU General Public License for more deta You should have received a copy of the GNU General Public License along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ /* declarations */ @@ -25,7 +26,7 @@ char *output_move_double(); char *output_move_quad(); char *output_block_move(); -/* check whther load_fpu_reg or not */ +/* check whether load_fpu_reg or not */ #define LOAD_FPU_REG_P(x) ((x)>=8 && (x)<=11) #define NO_LOAD_FPU_REG_P(x) ((x)==12 || (x)==13) #define FPU_REG_P(x) (LOAD_FPU_REG_P(x) || NO_LOAD_FPU_REG_P(x)) @@ -85,7 +86,7 @@ extern int target_flags; { "abshi", 128}, \ { "no-abshi", -128}, \ /* is branching expensive - on a PDP, it's actually really cheap */ \ -/* this is just to play aroound and check what code gcc generates */ \ +/* this is just to play around and check what code gcc generates */ \ { "branch-expensive", 256}, \ { "branch-cheap", -256}, \ /* optimize for space instead of time - just in a couple of places */ \ @@ -170,7 +171,7 @@ extern int target_flags; /* Define this if most significant word of a multiword number is numbered. */ #define WORDS_BIG_ENDIAN 1 -/* number of bits in an addressible storage unit */ +/* number of bits in an addressable storage unit */ #define BITS_PER_UNIT 8 /* Width in bits of a "word", which is the contents of a machine register. @@ -453,8 +454,8 @@ enum reg_class { NO_REGS, MUL_REGS, GENE operand as its first argument and the constraint letter as its second operand. - `Q' is for memory refereces using take more than 1 instruction. - `R' is for memory refereces which take 1 word for the instruction. */ + `Q' is for memory references using take more than 1 instruction. + `R' is for memory references which take 1 word for the instruction. */ #define EXTRA_CONSTRAINT(OP,CODE) \ ((GET_CODE (OP) != MEM) ? 0 \ @@ -524,10 +525,11 @@ extern int current_first_parm_offset; /* Value is 1 if returning from a function call automatically pops the arguments described by the number-of-args field in the call. + FUNDECL is the declaration node of the function (as a tree), FUNTYPE is the data type of the function (as a tree), or for a library call it is an identifier node for the subroutine name. */ -#define RETURN_POPS_ARGS(FUNTYPE,SIZE) 0 +#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) 0 /* Define how to find the value returned by a function. VALTYPE is the data type of the value (as a tree). @@ -564,7 +566,7 @@ maybe ac0 ? - as option someday! */ /* should probably return DImode and DFmode in memory,lest we fill up all regs! - have to, else we crash - exceptio: maybe return result in + have to, else we crash - exception: maybe return result in ac0 if DFmode and FPU present - compatibility problem with libraries for non-floating point ... */ @@ -838,7 +840,7 @@ extern int current_function_pretend_args && REG_OK_FOR_BASE_P (XEXP (xfoob, 0))) \ goto ADDR; \ \ - /* anything else is illegal */ \ + /* anything else is invalid */ \ fail: ; \ } @@ -1352,7 +1354,7 @@ JMP FUNCTION 0x0058 0x0000 <- FUNCTION else if (GET_MODE(X) == SImode) \ total = COSTS_N_INSNS(6); \ else \ - abort(); \ + total = COSTS_N_INSNS(2); \ break; \ /* case LSHIFT: */ \ case ASHIFT: \ @@ -1363,7 +1365,8 @@ JMP FUNCTION 0x0058 0x0000 <- FUNCTION else if (GET_MODE(X) == QImode) \ { \ if (GET_CODE(XEXP (X,1)) != CONST_INT) \ - abort(); \ + total = COSTS_N_INSNS(8); /* worst case */ \ + else \ total = COSTS_N_INSNS(INTVAL(XEXP (X,1))); \ } \ else if (GET_MODE(X) == HImode) \