diff options
author | Jeff Law <law@gcc.gnu.org> | 1999-09-06 23:49:18 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-09-06 23:49:18 -0600 |
commit | c5c7673583c6310e7f8e45704fdc4aadff33e393 (patch) | |
tree | f1a67b6ea75a7f0da3f06e0a1c60b213f4403168 /gcc/config/romp | |
parent | ad85216ece38be37dacbbb3fa7bb7db69aa33a4b (diff) | |
download | gcc-c5c7673583c6310e7f8e45704fdc4aadff33e393.zip gcc-c5c7673583c6310e7f8e45704fdc4aadff33e393.tar.gz gcc-c5c7673583c6310e7f8e45704fdc4aadff33e393.tar.bz2 |
Merge in gcc2-ss-010999
From-SVN: r29150
Diffstat (limited to 'gcc/config/romp')
-rw-r--r-- | gcc/config/romp/romp.c | 20 | ||||
-rw-r--r-- | gcc/config/romp/romp.h | 58 | ||||
-rw-r--r-- | gcc/config/romp/romp.md | 115 |
3 files changed, 89 insertions, 104 deletions
diff --git a/gcc/config/romp/romp.c b/gcc/config/romp/romp.c index a29d954..b5096c2 100644 --- a/gcc/config/romp/romp.c +++ b/gcc/config/romp/romp.c @@ -1,5 +1,5 @@ /* Subroutines used for code generation on ROMP. - Copyright (C) 1990, 1991, 1992, 1993, 1997 Free Software Foundation, Inc. + Copyright (C) 1990, 91, 92, 93, 97, 98, 1999 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@nyu.edu) This file is part of GNU CC. @@ -21,7 +21,7 @@ Boston, MA 02111-1307, USA. */ #include "config.h" -#include <stdio.h> +#include "system.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" @@ -825,8 +825,8 @@ print_operand (file, x, code) if (GET_CODE (x) == REG) fprintf (file, "%s", reg_names[REGNO (x) + 1]); else if (GET_CODE (x) == MEM) - print_operand (file, gen_rtx (MEM, GET_MODE (x), - plus_constant (XEXP (x, 0), 4)), 0); + print_operand (file, gen_rtx_MEM (GET_MODE (x), + plus_constant (XEXP (x, 0), 4)), 0); else abort (); break; @@ -1222,8 +1222,7 @@ output_epilog (file, size) /* Restore floating-point registers. */ if (write_code) output_loadsave_fpregs (file, CLOBBER, - gen_rtx (PLUS, Pmode, gen_rtx (REG, Pmode, 1), - GEN_INT (fp_save))); + plus_constant (gen_rtx_REG (Pmode, 1), fp_save)); /* If we push the stack and do not have size > 32K, adjust the register save location to the current position of sp. Otherwise, if long frame, @@ -1349,9 +1348,9 @@ get_symref (name) end_temporary_allocation (); p = *last_p = (struct symref_hashent *) permalloc (sizeof (struct symref_hashent)); - p->symref = gen_rtx (SYMBOL_REF, Pmode, - obstack_copy0 (&permanent_obstack, - name, strlen (name))); + p->symref = gen_rtx_SYMBOL_REF (Pmode, + obstack_copy0 (&permanent_obstack, + name, strlen (name))); p->next = 0; resume_temporary_allocation (); } @@ -1740,8 +1739,7 @@ output_loadsave_fpregs (file, code, addr) if (mask) fprintf (file, "\t%s\n", - output_fpop (code, GEN_INT (mask), - gen_rtx (MEM, Pmode, addr), + output_fpop (code, GEN_INT (mask), gen_rtx_MEM (Pmode, addr), 0, const0_rtx)); } diff --git a/gcc/config/romp/romp.h b/gcc/config/romp/romp.h index 82a0186..521a78c 100644 --- a/gcc/config/romp/romp.h +++ b/gcc/config/romp/romp.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for ROMP chip. - Copyright (C) 1989, 1991, 1993, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1989, 91, 93, 95, 96, 98, 1999 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@nyu.edu) This file is part of GNU CC. @@ -271,13 +271,11 @@ extern int target_flags; /* Place to put static chain when calling a function that requires it. */ #define STATIC_CHAIN \ - gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, stack_pointer_rtx, \ - GEN_INT (-36))) + gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx, -36)) /* Place where static chain is found upon entry to routine. */ #define STATIC_CHAIN_INCOMING \ - gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, arg_pointer_rtx, \ - GEN_INT (-20))) + gen_rtx_MEM (Pmode, plus_constant (arg_pointer_rtx, -20)) /* Place that structure value return address is placed. @@ -520,15 +518,16 @@ enum reg_class { NO_REGS, R0_REGS, R15_REGS, BASE_REGS, GENERAL_REGS, On ROMP the value is found in r2, unless the machine specific option fp-arg-in-fpregs is selected, in which case FP return values are in fr1 */ -#define FUNCTION_VALUE(VALTYPE, FUNC) \ - gen_rtx (REG, TYPE_MODE (VALTYPE), \ - (TARGET_FP_REGS && \ - GET_MODE_CLASS (TYPE_MODE (VALTYPE)) == MODE_FLOAT) ? 18 : 2) +#define FUNCTION_VALUE(VALTYPE, FUNC) \ + gen_rtx_REG (TYPE_MODE (VALTYPE), \ + (TARGET_FP_REG \ + && GET_MODE_CLASS (TYPE_MODE (VALTYPE)) == MODE_FLOAT) \ + ? 18 : 2) /* Define how to find the value returned by a library function assuming the value has mode MODE. */ -#define LIBCALL_VALUE(MODE) gen_rtx (REG, MODE, 2) +#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, 2) /* The definition of this macro implies that there are cases where a scalar value cannot be returned in registers. @@ -628,8 +627,8 @@ struct rt_cargs {int gregs, fregs; }; #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ (! (NAMED) ? 0 \ : ((TYPE) != 0 && TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST) ? 0 \ - : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17) \ - : (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0) + : USE_FP_REG(MODE,CUM) ? gen_rtx_REG ((MODE), (CUM.fregs) + 17) \ + : (CUM).gregs < 4 ? gen_rtx_REG ((MODE), 2 + (CUM).gregs) : 0) /* For an arg passed partly in registers and partly in memory, this is the number of registers used. @@ -672,9 +671,9 @@ struct rt_cargs {int gregs, fregs; }; if (! NO_RTL && first_reg_offset != 4) \ move_block_from_reg \ (2 + first_reg_offset, \ - gen_rtx (MEM, BLKmode, \ - plus_constant (virtual_incoming_args_rtx, \ - first_reg_offset * 4)), \ + gen_rtx_MEM (BLKmode, \ + plus_constant (virtual_incoming_args_rtx, \ + first_reg_offset * 4)), \ 4 - first_reg_offset, (4 - first_reg_offset) * UNITS_PER_WORD); \ PRETEND_SIZE = (4 - first_reg_offset) * UNITS_PER_WORD; \ } \ @@ -814,27 +813,27 @@ struct rt_cargs {int gregs, fregs; }; _temp = expand_binop (SImode, add_optab, ADDR, \ GEN_INT (4), \ 0, 1, OPTAB_LIB_WIDEN); \ - emit_move_insn (gen_rtx (MEM, SImode, \ - memory_address (SImode, ADDR)), _temp); \ + emit_move_insn (gen_rtx_MEM (SImode, \ + memory_address (SImode, ADDR)), _temp); \ \ _val = force_reg (SImode, CXT); \ _addr = memory_address (HImode, plus_constant (ADDR, 10)); \ - emit_move_insn (gen_rtx (MEM, HImode, _addr), \ + emit_move_insn (gen_rtx_MEM (HImode, _addr), \ gen_lowpart (HImode, _val)); \ _temp = expand_shift (RSHIFT_EXPR, SImode, _val, \ build_int_2 (16, 0), 0, 1); \ _addr = memory_address (HImode, plus_constant (ADDR, 6)); \ - emit_move_insn (gen_rtx (MEM, HImode, _addr), \ + emit_move_insn (gen_rtx_MEM (HImode, _addr), \ gen_lowpart (HImode, _temp)); \ \ _val = force_reg (SImode, FNADDR); \ _addr = memory_address (HImode, plus_constant (ADDR, 24)); \ - emit_move_insn (gen_rtx (MEM, HImode, _addr), \ + emit_move_insn (gen_rtx_MEM (HImode, _addr), \ gen_lowpart (HImode, _val)); \ _temp = expand_shift (RSHIFT_EXPR, SImode, _val, \ build_int_2 (16, 0), 0, 1); \ _addr = memory_address (HImode, plus_constant (ADDR, 20)); \ - emit_move_insn (gen_rtx (MEM, HImode, _addr), \ + emit_move_insn (gen_rtx_MEM (HImode, _addr), \ gen_lowpart (HImode, _temp)); \ \ } @@ -1074,11 +1073,10 @@ struct rt_cargs {int gregs, fregs; }; low_int = INTVAL (XEXP (X, 1)) & 0xffff; \ if (low_int & 0x8000) \ high_int += 1, low_int |= 0xffff0000; \ - (X) = gen_rtx (PLUS, SImode, \ - force_operand \ - (gen_rtx (PLUS, SImode, XEXP (X, 0), \ - GEN_INT (high_int << 16)), 0),\ - GEN_INT (low_int)); \ + (X) = gen_rtx_PLUS (SImode, \ + force_operand (plus_constant (XEXP (X, 0), \ + high_int << 16)), \ + GEN_INT (low_int)); \ } \ } @@ -1129,7 +1127,7 @@ struct rt_cargs {int gregs, fregs; }; && GET_CODE (op2) == REG && FP_REGNO_P (REGNO (op2)) \ && REGNO (op0) == REGNO (op2)) \ { \ - tem = gen_rtx (REG, GET_MODE (op0), 17); \ + tem = gen_rtx_REG (GET_MODE (op0), 17); \ emit_insn_after (gen_move_insn (op0, tem), INSN); \ SET_DEST (XVECEXP (PATTERN (INSN), 0, 0)) = tem; \ OPERANDS[0] = tem; \ @@ -1584,8 +1582,8 @@ extern int romp_debugger_arg_correction(); else if (GET_CODE (addr) == SYMBOL_REF \ && CONSTANT_POOL_ADDRESS_P (addr)) \ { \ - offset = GEN_INT (get_pool_offset (addr) + 12); \ - base = gen_rtx (REG, SImode, 14); \ + offset = GEN_INT (get_pool_offset (addr) + 12); \ + base = gen_rtx_REG (SImode, 14); \ } \ else if (GET_CODE (addr) == CONST \ && GET_CODE (XEXP (addr, 0)) == PLUS \ @@ -1596,7 +1594,7 @@ extern int romp_debugger_arg_correction(); offset = plus_constant (XEXP (XEXP (addr, 0), 1), \ (get_pool_offset (XEXP (XEXP (addr, 0), 0)) \ + 12)); \ - base = gen_rtx (REG, SImode, 14); \ + base = gen_rtx_REG (SImode, 14); \ } \ output_addr_const (FILE, offset); \ if (base) \ diff --git a/gcc/config/romp/romp.md b/gcc/config/romp/romp.md index 5f06315..82290c4 100644 --- a/gcc/config/romp/romp.md +++ b/gcc/config/romp/romp.md @@ -1,5 +1,5 @@ ;;- Machine description for ROMP chip for GNU C compiler -;; Copyright (C) 1988, 91, 93, 94, 95, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1988, 91, 93, 94, 95, 98, 1999 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; This file is part of GNU CC. @@ -180,8 +180,7 @@ || (unsigned) ((- const_val) + 0x8000) < 0x10000) { /* Can do this by loading the negative constant and then negating. */ - emit_move_insn (operands[0], - GEN_INT (- const_val)); + emit_move_insn (operands[0], GEN_INT (- const_val)); emit_insn (gen_negsi2 (operands[0], operands[0])); DONE; } @@ -195,8 +194,7 @@ if (low_part >= 0x10 && exact_log2 (low_part) >= 0) i = high_part, high_part = low_part, low_part = i; - emit_move_insn (operands[0], - GEN_INT (low_part)); + emit_move_insn (operands[0], GEN_INT (low_part)); emit_insn (gen_iorsi3 (operands[0], operands[0], GEN_INT (high_part))); DONE; @@ -482,11 +480,9 @@ { operands[2] = operand_subword (operands[0], 1, 0, DImode); operands[3] = XEXP (operands[1], 0); operands[4] = operand_subword (operands[0], 0, 0, DImode); - operands[5] = gen_rtx (MEM, SImode, operands[2]); + operands[5] = gen_rtx_MEM (SImode, operands[2]); operands[6] = operands[2]; - operands[7] = gen_rtx (MEM, SImode, - gen_rtx (PLUS, SImode, operands[2], - GEN_INT (4))); + operands[7] = gen_rtx_MEM (SImode, plus_constant (operands[2], 4)); if (operands[2] == 0 || operands[4] == 0) FAIL; @@ -503,11 +499,9 @@ (set (match_dup 6) (match_dup 7))] " { operands[3] = XEXP (operands[0], 0); - operands[4] = gen_rtx (MEM, SImode, operands[2]); + operands[4] = gen_rtx_MEM (SImode, operands[2]); operands[5] = operand_subword (operands[1], 0, 0, DImode); - operands[6] = gen_rtx (MEM, SImode, - gen_rtx (PLUS, SImode, operands[2], - GEN_INT (4))); + operands[6] = gen_rtx_MEM (SImode, plus_constant (operands[4], 4)); operands[7] = operand_subword (operands[1], 1, 0, DImode); if (operands[5] == 0 || operands[7] == 0) @@ -607,8 +601,8 @@ operands[7] = operands[8] = operands[6]; else { - operands[7] = gen_rtx (SCRATCH, SImode); - operands[8] = gen_rtx (SCRATCH, SImode); + operands[7] = gen_rtx_SCRATCH (SImode); + operands[8] = gen_rtx_SCRATCH (SImode); } }") @@ -631,7 +625,7 @@ if (op0 == op1) { - emit_insn (gen_rtx (SET, VOIDmode, op0, op1)); + emit_insn (gen_rtx_SET (VOIDmode, op0, op1)); DONE; } @@ -686,7 +680,7 @@ if (op0 == op1) { - emit_insn (gen_rtx (SET, VOIDmode, op0, op1)); + emit_insn (gen_rtx_SET (VOIDmode, op0, op1)); DONE; } @@ -706,7 +700,7 @@ last = emit_move_insn (operand_subword (op0, 0, 1, SFmode), operand_subword_force (op1, 0, SFmode)); - REG_NOTES (last) = gen_rtx (EXPR_LIST, REG_EQUAL, op1, REG_NOTES (last)); + REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, op1, REG_NOTES (last)); DONE; } }") @@ -812,11 +806,10 @@ " { operands[2] = XEXP (operands[1], 0); operands[3] = operand_subword (operands[0], 0, 0, DFmode); - operands[4] = gen_rtx (MEM, SImode, gen_rtx (REG, SImode, 15)); + operands[4] = gen_rtx_MEM (SImode, gen_rtx (REG, SImode, 15)); operands[5] = operand_subword (operands[0], 1, 0, DFmode); - operands[6] = gen_rtx (MEM, SImode, - gen_rtx (PLUS, SImode, gen_rtx (REG, SImode, 15), - GEN_INT (4))); + operands[6] = gen_rtx_MEM (SImode, + plus_constant (gen_rtx (REG, SImode, 15), 4)); if (operands[3] == 0 || operands[5] == 0) FAIL; @@ -833,11 +826,10 @@ (set (match_dup 5) (match_dup 6))] " { operands[2] = XEXP (operands[0], 0); - operands[3] = gen_rtx (MEM, SImode, gen_rtx (REG, SImode, 15)); + operands[3] = gen_rtx_MEM (SImode, gen_rtx (REG, SImode, 15)); operands[4] = operand_subword (operands[1], 0, 0, DFmode); - operands[5] = gen_rtx (MEM, SImode, - gen_rtx (PLUS, SImode, gen_rtx (REG, SImode, 15), - GEN_INT (4))); + operands[5] = gen_rtx_MEM (SImode, + plus_constant (gen_rtx_REG (SImode, 15), 4)); operands[6] = operand_subword (operands[1], 1, 0, DFmode); if (operands[4] == 0 || operands[6] == 0) @@ -870,11 +862,11 @@ FAIL; if (reload_completed) - operands[6] = operands[7] = gen_rtx (REG, SImode, 15); + operands[6] = operands[7] = gen_rtx_REG (SImode, 15); else { - operands[6] = gen_rtx (SCRATCH, SImode); - operands[7] = gen_rtx (SCRATCH, SImode); + operands[6] = gen_rtx_SCRATCH (SImode); + operands[7] = gen_rtx_SCRATCH (SImode); } }") @@ -1208,8 +1200,7 @@ if (low & 0x8000) high++, low |= 0xffff0000; - emit_insn (gen_addsi3 (operands[0], operands[1], - GEN_INT (high << 16))); + emit_insn (gen_addsi3 (operands[0], operands[1], GEN_INT (high << 16))); operands[1] = operands[0]; operands[2] = GEN_INT (low); } @@ -1366,16 +1357,16 @@ rtx insn; emit_insn (gen_divmodsi4_doit (operands[1], operands[2])); - insn = emit_move_insn (operands[0], gen_rtx (REG, SImode, 2)); - REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, - gen_rtx (DIV, SImode, operands[1], - operands[2]), - REG_NOTES (insn)); - insn = emit_move_insn (operands[3], gen_rtx (REG, SImode, 3)); - REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, - gen_rtx (MOD, SImode, operands[1], - operands[2]), - REG_NOTES (insn)); + insn = emit_move_insn (operands[0], gen_rtx_REG (SImode, 2)); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, + gen_rtx_DIV (SImode, operands[1], + operands[2]), + REG_NOTES (insn)); + insn = emit_move_insn (operands[3], gen_rtx_REG (SImode, 3)); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, + gen_rtx_MOD (SImode, operands[1], + operands[2]), + REG_NOTES (insn)); DONE; }") @@ -1416,16 +1407,16 @@ rtx insn; emit_insn (gen_udivmodsi4_doit (operands[1], operands[2])); - insn = emit_move_insn (operands[0], gen_rtx (REG, SImode, 2)); - REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, - gen_rtx (UDIV, SImode, operands[1], - operands[2]), - REG_NOTES (insn)); - insn = emit_move_insn (operands[3], gen_rtx (REG, SImode, 3)); - REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, - gen_rtx (UMOD, SImode, operands[1], - operands[2]), - REG_NOTES (insn)); + insn = emit_move_insn (operands[0], gen_rtx_REG (SImode, 2)); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, + gen_rtx_UDIV (SImode, operands[1], + operands[2]), + REG_NOTES (insn)); + insn = emit_move_insn (operands[3], gen_rtx_REG (SImode, 3)); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, + gen_rtx_UMOD (SImode, operands[1], + operands[2]), + REG_NOTES (insn)); DONE; }") @@ -1550,7 +1541,7 @@ if (top != 0 && bottom != 0) { emit_insn (gen_iorsi3 (operands[0], operands[1], - GEN_INT ((top << 16)))); + GEN_INT (top << 16)))); operands[1] = operands[0]; operands[2] = GEN_INT (bottom); } @@ -1590,7 +1581,7 @@ else if (top != 0 && bottom != 0) { emit_insn (gen_xorsi3 (operands[0], operands[1], - GEN_INT ((top << 16)))); + GEN_INT (top << 16))); operands[1] = operands[0]; operands[2] = GEN_INT (bottom); } @@ -1664,7 +1655,7 @@ "" " { - rtx reg0 = gen_rtx (REG, SImode, 0); + rtx reg0 = gen_rtx_REG (SImode, 0); rtx call_insn; if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != CONST_INT) @@ -1674,8 +1665,8 @@ if (GET_CODE (operands[0]) == SYMBOL_REF) { extern rtx get_symref (); - char *real_fcnname = - (char *) alloca (strlen (XSTR (operands[0], 0)) + 2); + char *real_fcnname + = (char *) alloca (strlen (XSTR (operands[0], 0)) + 2); /* Copy the data area address to r0. */ emit_move_insn (reg0, force_reg (SImode, operands[0])); @@ -1688,7 +1679,7 @@ rtx data_access; emit_move_insn (reg0, force_reg (SImode, operands[0])); - data_access = gen_rtx (MEM, SImode, operands[0]); + data_access = gen_rtx_MEM (SImode, operands[0]); RTX_UNCHANGING_P (data_access) = 1; operands[0] = copy_to_reg (data_access); } @@ -1723,7 +1714,7 @@ "" " { - rtx reg0 = gen_rtx (REG, SImode, 0); + rtx reg0 = gen_rtx_REG (SImode, 0); rtx call_insn; if (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != CONST_INT) @@ -1747,7 +1738,7 @@ rtx data_access; emit_move_insn (reg0,force_reg (SImode, operands[1])); - data_access = gen_rtx (MEM, SImode, operands[1]); + data_access = gen_rtx_MEM (SImode, operands[1]); RTX_UNCHANGING_P (data_access) = 1; operands[1] = copy_to_reg (data_access); } @@ -1977,8 +1968,7 @@ result = expand_binop (SImode, xor_optab, operand_subword_force (operands[1], 0, SFmode), - GEN_INT (0x80000000), - target, 0, OPTAB_WIDEN); + GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); if (result == 0) abort (); @@ -2011,8 +2001,7 @@ start_sequence (); result = expand_binop (SImode, xor_optab, operand_subword_force (operands[1], 0, DFmode), - GEN_INT (0x80000000), - target, 0, OPTAB_WIDEN); + GEN_INT (0x80000000), target, 0, OPTAB_WIDEN); if (result == 0) abort (); |