aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/romp
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1999-09-06 23:49:18 -0600
committerJeff Law <law@gcc.gnu.org>1999-09-06 23:49:18 -0600
commitc5c7673583c6310e7f8e45704fdc4aadff33e393 (patch)
treef1a67b6ea75a7f0da3f06e0a1c60b213f4403168 /gcc/config/romp
parentad85216ece38be37dacbbb3fa7bb7db69aa33a4b (diff)
downloadgcc-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.c20
-rw-r--r--gcc/config/romp/romp.h58
-rw-r--r--gcc/config/romp/romp.md115
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 ();