aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@pierdol.cobaltmicro.com>1998-06-23 02:24:13 +0000
committerDavid S. Miller <davem@gcc.gnu.org>1998-06-22 19:24:13 -0700
commit254110c201b31e3d35bfe1f53e94f447f915c898 (patch)
tree911815c7ecd769442ae3555005d584745521b073
parent519ebd1eecb18d95a75b8e4e3e5c063c4b82608b (diff)
downloadgcc-254110c201b31e3d35bfe1f53e94f447f915c898.zip
gcc-254110c201b31e3d35bfe1f53e94f447f915c898.tar.gz
gcc-254110c201b31e3d35bfe1f53e94f447f915c898.tar.bz2
Complete this set of changes to make the Sparc
backend completely gen_rtx clean. From-SVN: r20669
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/sparc/sparc.c186
-rw-r--r--gcc/config/sparc/sparc.md46
3 files changed, 118 insertions, 117 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5acbf17..ab4cacf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -5,7 +5,8 @@ Mon Jun 22 23:57:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
subdi3, negdi2, call, call_value, untyped_return, nonlocal_goto,
splits and peepholes): Change remaining generic gen_rtx calls to
specific genrtl ones.
-
+ * config/sparc/sparc.c: Likewise.
+
Mon Jun 22 22:21:46 1998 Richard Henderson <rth@cygnus.com>
* gcc.c (handle_braces): Recognize | between options as an or.
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 204162e..4bdaaae 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1039,15 +1039,15 @@ gen_compare_reg (code, x, y)
prev_args[reg][1] = y;
next_fcc_reg = (next_fcc_reg + 1) & 3;
}
- cc_reg = gen_rtx (REG, mode, reg + SPARC_FIRST_V9_FCC_REG);
+ cc_reg = gen_rtx_REG (mode, reg + SPARC_FIRST_V9_FCC_REG);
}
#else
cc_reg = gen_reg_rtx (mode);
#endif /* ! experiment */
else if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT)
- cc_reg = gen_rtx (REG, mode, SPARC_FCC_REG);
+ cc_reg = gen_rtx_REG (mode, SPARC_FCC_REG);
else
- cc_reg = gen_rtx (REG, mode, SPARC_ICC_REG);
+ cc_reg = gen_rtx_REG (mode, SPARC_ICC_REG);
if (TARGET_V8PLUS && mode == CCXmode)
{
@@ -1055,8 +1055,8 @@ gen_compare_reg (code, x, y)
}
else
{
- emit_insn (gen_rtx (SET, VOIDmode, cc_reg,
- gen_rtx (COMPARE, mode, x, y)));
+ emit_insn (gen_rtx_SET (VOIDmode, cc_reg,
+ gen_rtx_COMPARE (mode, x, y)));
}
return cc_reg;
@@ -1123,17 +1123,17 @@ gen_v9_scc (compare_code, operands)
&& GET_MODE (operands[0]) == DImode
&& GET_MODE (op0) == DImode)
{
- emit_insn (gen_rtx (SET, VOIDmode, operands[0], op0));
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (IF_THEN_ELSE, DImode,
- gen_rtx (compare_code, DImode,
- op0, const0_rtx),
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], op0));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_IF_THEN_ELSE (DImode,
+ gen_rtx_fmt_ee (compare_code, DImode,
+ op0, const0_rtx),
const1_rtx,
operands[0])));
return 1;
}
- emit_insn (gen_rtx (SET, VOIDmode, operands[0], const0_rtx));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], const0_rtx));
if (GET_MODE (op0) != DImode)
{
temp = gen_reg_rtx (DImode);
@@ -1141,10 +1141,10 @@ gen_v9_scc (compare_code, operands)
}
else
temp = op0;
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (IF_THEN_ELSE, GET_MODE (operands[0]),
- gen_rtx (compare_code, DImode,
- temp, const0_rtx),
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_IF_THEN_ELSE (GET_MODE (operands[0]),
+ gen_rtx_fmt_ee (compare_code, DImode,
+ temp, const0_rtx),
const1_rtx,
operands[0])));
return 1;
@@ -1163,12 +1163,12 @@ gen_v9_scc (compare_code, operands)
default :
abort ();
}
- emit_insn (gen_rtx (SET, VOIDmode, operands[0], const0_rtx));
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (IF_THEN_ELSE, GET_MODE (operands[0]),
- gen_rtx (compare_code,
- GET_MODE (operands[1]),
- operands[1], const0_rtx),
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], const0_rtx));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_IF_THEN_ELSE (GET_MODE (operands[0]),
+ gen_rtx_fmt_ee (compare_code,
+ GET_MODE (operands[1]),
+ operands[1], const0_rtx),
const1_rtx, operands[0])));
return 1;
}
@@ -1183,12 +1183,12 @@ emit_v9_brxx_insn (code, op0, label)
enum rtx_code code;
rtx op0, label;
{
- emit_jump_insn (gen_rtx (SET, VOIDmode,
+ emit_jump_insn (gen_rtx_SET (VOIDmode,
pc_rtx,
- gen_rtx (IF_THEN_ELSE, VOIDmode,
- gen_rtx (code, GET_MODE (op0),
- op0, const0_rtx),
- gen_rtx (LABEL_REF, VOIDmode, label),
+ gen_rtx_IF_THEN_ELSE (VOIDmode,
+ gen_rtx_fmt_ee (code, GET_MODE (op0),
+ op0, const0_rtx),
+ gen_rtx_LABEL_REF (VOIDmode, label),
pc_rtx)));
}
@@ -1470,15 +1470,15 @@ legitimize_pic_address (orig, mode, reg)
else
address = orig;
- pic_ref = gen_rtx (MEM, Pmode,
- gen_rtx (PLUS, Pmode,
+ pic_ref = gen_rtx_MEM (Pmode,
+ gen_rtx_PLUS (Pmode,
pic_offset_table_rtx, address));
current_function_uses_pic_offset_table = 1;
RTX_UNCHANGING_P (pic_ref) = 1;
insn = emit_move_insn (reg, pic_ref);
/* Put a REG_EQUAL note on this insn, so that it can be optimized
by loop. */
- REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, orig,
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig,
REG_NOTES (insn));
return reg;
}
@@ -1517,7 +1517,7 @@ legitimize_pic_address (orig, mode, reg)
/* If we reach here, then something is seriously wrong. */
abort ();
}
- return gen_rtx (PLUS, Pmode, base, offset);
+ return gen_rtx_PLUS (Pmode, base, offset);
}
else if (GET_CODE (orig) == LABEL_REF)
/* ??? Why do we do this? */
@@ -1578,8 +1578,8 @@ finalize_pic ()
/* Initialize every time through, since we can't easily
know this to be permanent. */
- global_offset_table = gen_rtx (SYMBOL_REF, Pmode, "_GLOBAL_OFFSET_TABLE_");
- get_pc_symbol = gen_rtx (SYMBOL_REF, Pmode, get_pc_symbol_name);
+ global_offset_table = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_");
+ get_pc_symbol = gen_rtx_SYMBOL_REF (Pmode, get_pc_symbol_name);
flag_pic = 0;
emit_insn_after (pic_setup_code (), get_insns ());
@@ -1596,7 +1596,7 @@ finalize_pic ()
since setjmp/longjmp can cause life info to screw up.
??? In the case where we don't obey regdecls, this is not sufficient
since we may not fall out the bottom. */
- emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
+ emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx));
}
/* Emit insns to move operands[1] into operands[0].
@@ -1638,7 +1638,7 @@ emit_move_sequence (operands, mode)
|| GET_CODE (operand1) == MEM)
{
/* Run this case quickly. */
- emit_insn (gen_rtx (SET, VOIDmode, operand0, operand1));
+ emit_insn (gen_rtx_SET (VOIDmode, operand0, operand1));
return 1;
}
}
@@ -1648,7 +1648,7 @@ emit_move_sequence (operands, mode)
|| (operand1 == const0_rtx && ! TARGET_LIVE_G0))
{
/* Run this case quickly. */
- emit_insn (gen_rtx (SET, VOIDmode, operand0, operand1));
+ emit_insn (gen_rtx_SET (VOIDmode, operand0, operand1));
return 1;
}
if (! reload_in_progress)
@@ -1727,10 +1727,10 @@ emit_move_sequence (operands, mode)
if (TARGET_ARCH64 && mode == DImode)
emit_insn (gen_sethi_di_sp64 (temp, operand1));
else
- emit_insn (gen_rtx (SET, VOIDmode, temp,
- gen_rtx (HIGH, mode, operand1)));
+ emit_insn (gen_rtx_SET (VOIDmode, temp,
+ gen_rtx_HIGH (mode, operand1)));
- operands[1] = gen_rtx (LO_SUM, mode, temp, operand1);
+ operands[1] = gen_rtx_LO_SUM (mode, temp, operand1);
}
}
@@ -1983,14 +1983,14 @@ output_move_double (operands)
operands in OPERANDS to be suitable for the low-numbered word. */
if (optype0 == REGOP)
- latehalf[0] = gen_rtx (REG, SImode, REGNO (op0) + 1);
+ latehalf[0] = gen_rtx_REG (SImode, REGNO (op0) + 1);
else if (optype0 == OFFSOP)
latehalf[0] = adj_offsettable_operand (op0, 4);
else
latehalf[0] = op0;
if (optype1 == REGOP)
- latehalf[1] = gen_rtx (REG, SImode, REGNO (op1) + 1);
+ latehalf[1] = gen_rtx_REG (SImode, REGNO (op1) + 1);
else if (optype1 == OFFSOP)
latehalf[1] = adj_offsettable_operand (op1, 4);
else if (optype1 == CNSTOP)
@@ -2100,7 +2100,7 @@ output_move_double (operands)
xops[0] = latehalf[0];
xops[1] = op0;
output_asm_insn ("add %1,%0,%1", xops);
- operands[1] = gen_rtx (MEM, DImode, op0);
+ operands[1] = gen_rtx_MEM (DImode, op0);
latehalf[1] = adj_offsettable_operand (operands[1], 4);
addreg1 = 0;
highest_first = 1;
@@ -2203,17 +2203,17 @@ output_move_quad (operands)
if (optype0 == REGOP)
{
- wordpart[0][0] = gen_rtx (REG, word_mode, REGNO (op0) + 0);
+ wordpart[0][0] = gen_rtx_REG (word_mode, REGNO (op0) + 0);
if (TARGET_ARCH64 && FP_REG_P (op0)
&& REGNO (op0) < SPARC_FIRST_V9_FP_REG)
- wordpart[1][0] = gen_rtx (REG, word_mode, REGNO (op0) + 2);
+ wordpart[1][0] = gen_rtx_REG (word_mode, REGNO (op0) + 2);
else
- wordpart[1][0] = gen_rtx (REG, word_mode, REGNO (op0) + 1);
+ wordpart[1][0] = gen_rtx_REG (word_mode, REGNO (op0) + 1);
if (TARGET_ARCH32)
{
- wordpart[2][0] = gen_rtx (REG, word_mode, REGNO (op0) + 2);
- wordpart[3][0] = gen_rtx (REG, word_mode, REGNO (op0) + 3);
+ wordpart[2][0] = gen_rtx_REG (word_mode, REGNO (op0) + 2);
+ wordpart[3][0] = gen_rtx_REG (word_mode, REGNO (op0) + 3);
}
/* Loading into a register which overlaps a register used in the
@@ -2260,7 +2260,7 @@ output_move_quad (operands)
output_asm_insn ("add %0, %1, %2", temp);
load_late_half[0] = 0;
load_late_half[1] = 1;
- op1 = gen_rtx (MEM, TFmode, wordpart[3][0]);
+ op1 = gen_rtx_MEM (TFmode, wordpart[3][0]);
operands[1] = op1;
optype1 = OFFSOP;
}
@@ -2301,17 +2301,17 @@ output_move_quad (operands)
if (optype1 == REGOP)
{
- wordpart[0][1] = gen_rtx (REG, word_mode, REGNO (op1) + 0);
+ wordpart[0][1] = gen_rtx_REG (word_mode, REGNO (op1) + 0);
if (TARGET_ARCH64 && FP_REG_P (op1)
&& REGNO (op1) < SPARC_FIRST_V9_FP_REG)
- wordpart[1][1] = gen_rtx (REG, word_mode, REGNO (op1) + 2);
+ wordpart[1][1] = gen_rtx_REG (word_mode, REGNO (op1) + 2);
else
- wordpart[1][1] = gen_rtx (REG, word_mode, REGNO (op1) + 1);
+ wordpart[1][1] = gen_rtx_REG (word_mode, REGNO (op1) + 1);
if (TARGET_ARCH32)
{
- wordpart[2][1] = gen_rtx (REG, word_mode, REGNO (op1) + 2);
- wordpart[3][1] = gen_rtx (REG, word_mode, REGNO (op1) + 3);
+ wordpart[2][1] = gen_rtx_REG (word_mode, REGNO (op1) + 2);
+ wordpart[3][1] = gen_rtx_REG (word_mode, REGNO (op1) + 3);
}
}
else if (optype1 == OFFSOP)
@@ -2468,7 +2468,7 @@ output_move_quad (operands)
int fix = offset - i * 4;
/* Back up to the appropriate place. */
- temp[1] = gen_rtx (CONST_INT, VOIDmode, -fix);
+ temp[1] = gen_rtx_CONST_INT (VOIDmode, -fix);
if (addreg0)
{
temp[0] = addreg0;
@@ -2483,7 +2483,7 @@ output_move_quad (operands)
wordpart[i]);
/* Don't modify the register that's the destination of the
move. */
- temp[0] = gen_rtx (CONST_INT, VOIDmode, -(offset - fix));
+ temp[0] = gen_rtx_CONST_INT (VOIDmode, -(offset - fix));
if (addreg0 && REGNO (addreg0) != REGNO (wordpart[i][0]))
{
temp[1] = addreg0;
@@ -2500,7 +2500,7 @@ output_move_quad (operands)
}
if (offset)
{
- temp[1] = gen_rtx (CONST_INT, VOIDmode, -offset);
+ temp[1] = gen_rtx_CONST_INT (VOIDmode, -offset);
/* Undo the adds we just did. */
if (addreg0)
{
@@ -3757,9 +3757,9 @@ output_function_epilogue (file, size, leaf_function)
/* If we wound up with things in our delay slot, flush them here. */
if (current_function_epilogue_delay_list)
{
- rtx insn = emit_jump_insn_after (gen_rtx (RETURN, VOIDmode),
+ rtx insn = emit_jump_insn_after (gen_rtx_RETURN (VOIDmode),
get_last_insn ());
- PATTERN (insn) = gen_rtx (PARALLEL, VOIDmode,
+ PATTERN (insn) = gen_rtx_PARALLEL (VOIDmode,
gen_rtvec (2,
PATTERN (XEXP (current_function_epilogue_delay_list, 0)),
PATTERN (insn)));
@@ -4148,9 +4148,9 @@ function_arg_record_value_3 (bitpos, parms)
do
{
regno = parms->regbase + this_slotno;
- reg = gen_rtx (REG, mode, regno);
+ reg = gen_rtx_REG (mode, regno);
XVECEXP (parms->ret, 0, parms->nregs)
- = gen_rtx (EXPR_LIST, VOIDmode, reg, GEN_INT (intoffset));
+ = gen_rtx_EXPR_LIST (VOIDmode, reg, GEN_INT (intoffset));
this_slotno += 1;
intoffset = (intoffset | (UNITS_PER_WORD-1)) + 1;
@@ -4201,12 +4201,12 @@ function_arg_record_value_2 (type, startbitpos, parms)
function_arg_record_value_3 (bitpos, parms);
- reg = gen_rtx (REG, DECL_MODE (field),
+ reg = gen_rtx_REG (DECL_MODE (field),
(SPARC_FP_ARG_FIRST + this_slotno * 2
+ (DECL_MODE (field) == SFmode
&& (bitpos & 32) != 0)));
XVECEXP (parms->ret, 0, parms->nregs)
- = gen_rtx (EXPR_LIST, VOIDmode, reg,
+ = gen_rtx_EXPR_LIST (VOIDmode, reg,
GEN_INT (bitpos / BITS_PER_UNIT));
parms->nregs += 1;
}
@@ -4263,7 +4263,7 @@ function_arg_record_value (type, slotno, named, regbase)
anyway so the rest of gcc doesn't go nuts. Returning a PARALLEL
leads to breakage due to the fact that there are zero bytes to
load. */
- return gen_rtx (REG, DImode, regbase);
+ return gen_rtx_REG (DImode, regbase);
}
else
{
@@ -4277,7 +4277,7 @@ function_arg_record_value (type, slotno, named, regbase)
if (nregs == 0)
abort();
- parms.ret = gen_rtx (PARALLEL, VOIDmode, rtvec_alloc (nregs));
+ parms.ret = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (nregs));
/* Fill in the entries. */
parms.nregs = 0;
@@ -4328,7 +4328,7 @@ function_arg (cum, mode, type, named, incoming_p)
if (TARGET_ARCH32)
{
- reg = gen_rtx (REG, mode, regno);
+ reg = gen_rtx_REG (mode, regno);
return reg;
}
@@ -4340,7 +4340,7 @@ function_arg (cum, mode, type, named, incoming_p)
|| GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT)
&& SPARC_FP_REG_P (regno))
{
- reg = gen_rtx (REG, mode, regno);
+ reg = gen_rtx_REG (mode, regno);
if (cum->prototype_p || cum->libcall_p)
{
/* "* 2" because fp reg numbers are recorded in 4 byte
@@ -4351,11 +4351,11 @@ function_arg (cum, mode, type, named, incoming_p)
value in the reg but reserve space on the stack. That's an
optimization, and is deferred [for a bit]. */
if ((regno - SPARC_FP_ARG_FIRST) >= SPARC_INT_ARG_MAX * 2)
- return gen_rtx (PARALLEL, mode,
+ return gen_rtx_PARALLEL (mode,
gen_rtvec (2,
- gen_rtx (EXPR_LIST, VOIDmode,
+ gen_rtx_EXPR_LIST (VOIDmode,
NULL_RTX, const0_rtx),
- gen_rtx (EXPR_LIST, VOIDmode,
+ gen_rtx_EXPR_LIST (VOIDmode,
reg, const0_rtx)));
else
#else
@@ -4420,12 +4420,12 @@ function_arg (cum, mode, type, named, incoming_p)
abort ();
mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 0);
- reg = gen_rtx (REG, mode, regno);
+ reg = gen_rtx_REG (mode, regno);
}
else
{
/* Scalar or complex int. */
- reg = gen_rtx (REG, mode, regno);
+ reg = gen_rtx_REG (mode, regno);
}
return reg;
@@ -4657,7 +4657,7 @@ function_value (type, mode, incoming_p)
else
regno = BASE_OUTGOING_VALUE_REG (mode);
- return gen_rtx (REG, mode, regno);
+ return gen_rtx_REG (mode, regno);
}
/* Do what is necessary for `va_start'. The argument is ignored.
@@ -4674,15 +4674,15 @@ sparc_builtin_saveregs (arglist)
int regno;
for (regno = first_reg; regno < NPARM_REGS (word_mode); regno++)
- emit_move_insn (gen_rtx (MEM, word_mode,
- gen_rtx (PLUS, Pmode,
+ emit_move_insn (gen_rtx_MEM (word_mode,
+ gen_rtx_PLUS (Pmode,
frame_pointer_rtx,
GEN_INT (STACK_POINTER_OFFSET
+ UNITS_PER_WORD * regno))),
- gen_rtx (REG, word_mode,
+ gen_rtx_REG (word_mode,
BASE_INCOMING_ARG_REG (word_mode) + regno));
- address = gen_rtx (PLUS, Pmode,
+ address = gen_rtx_PLUS (Pmode,
frame_pointer_rtx,
GEN_INT (STACK_POINTER_OFFSET
+ UNITS_PER_WORD * first_reg));
@@ -5706,27 +5706,27 @@ sparc_initialize_trampoline (tramp, fnaddr, cxt)
size_int (10), 0, 1);
rtx low_cxt = expand_and (cxt, GEN_INT (0x3ff), 0);
rtx low_fn = expand_and (fnaddr, GEN_INT (0x3ff), 0);
- rtx g1_sethi = gen_rtx (HIGH, SImode, GEN_INT (0x03000000));
- rtx g2_sethi = gen_rtx (HIGH, SImode, GEN_INT (0x05000000));
- rtx g1_ori = gen_rtx (HIGH, SImode, GEN_INT (0x82106000));
- rtx g2_ori = gen_rtx (HIGH, SImode, GEN_INT (0x8410A000));
+ rtx g1_sethi = gen_rtx_HIGH (SImode, GEN_INT (0x03000000));
+ rtx g2_sethi = gen_rtx_HIGH (SImode, GEN_INT (0x05000000));
+ rtx g1_ori = gen_rtx_HIGH (SImode, GEN_INT (0x82106000));
+ rtx g2_ori = gen_rtx_HIGH (SImode, GEN_INT (0x8410A000));
rtx tem = gen_reg_rtx (SImode);
emit_move_insn (tem, g1_sethi);
emit_insn (gen_iorsi3 (high_fn, high_fn, tem));
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (tramp, 0)), high_fn);
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (tramp, 0)), high_fn);
emit_move_insn (tem, g1_ori);
emit_insn (gen_iorsi3 (low_fn, low_fn, tem));
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (tramp, 4)), low_fn);
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (tramp, 4)), low_fn);
emit_move_insn (tem, g2_sethi);
emit_insn (gen_iorsi3 (high_cxt, high_cxt, tem));
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (tramp, 8)), high_cxt);
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (tramp, 8)), high_cxt);
emit_move_insn (tem, g2_ori);
emit_insn (gen_iorsi3 (low_cxt, low_cxt, tem));
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (tramp, 16)), low_cxt);
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, SImode, tramp))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, SImode,
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (tramp, 16)), low_cxt);
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (SImode, tramp))));
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (SImode,
plus_constant (tramp, 8)))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, SImode,
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (SImode,
plus_constant (tramp, 16)))));
}
@@ -5738,16 +5738,16 @@ void
sparc64_initialize_trampoline (tramp, fnaddr, cxt)
rtx tramp, fnaddr, cxt;
{
- emit_move_insn (gen_rtx (MEM, DImode, plus_constant (tramp, 24)), cxt);
- emit_move_insn (gen_rtx (MEM, DImode, plus_constant (tramp, 32)), fnaddr);
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, DImode, tramp))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, DImode,
+ emit_move_insn (gen_rtx_MEM (DImode, plus_constant (tramp, 24)), cxt);
+ emit_move_insn (gen_rtx_MEM (DImode, plus_constant (tramp, 32)), fnaddr);
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (DImode, tramp))));
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (DImode,
plus_constant (tramp, 8)))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, DImode,
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (DImode,
plus_constant (tramp, 16)))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, DImode,
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (DImode,
plus_constant (tramp, 24)))));
- emit_insn (gen_flush (validize_mem (gen_rtx (MEM, DImode,
+ emit_insn (gen_flush (validize_mem (gen_rtx_MEM (DImode,
plus_constant (tramp, 32)))));
}
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 0732b8b..a8fb8f8 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -2701,14 +2701,14 @@
&& GET_MODE (sparc_compare_op0) == DImode
&& v9_regcmp_p (code))
{
- operands[1] = gen_rtx (code, DImode,
+ operands[1] = gen_rtx_fmt_ee (code, DImode,
sparc_compare_op0, sparc_compare_op1);
}
else
{
rtx cc_reg = gen_compare_reg (code,
sparc_compare_op0, sparc_compare_op1);
- operands[1] = gen_rtx (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+ operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
}
}")
@@ -2731,14 +2731,14 @@
&& GET_MODE (sparc_compare_op0) == DImode
&& v9_regcmp_p (code))
{
- operands[1] = gen_rtx (code, DImode,
+ operands[1] = gen_rtx_fmt_ee (code, DImode,
sparc_compare_op0, sparc_compare_op1);
}
else
{
rtx cc_reg = gen_compare_reg (code,
sparc_compare_op0, sparc_compare_op1);
- operands[1] = gen_rtx (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+ operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
}
}")
@@ -2816,14 +2816,14 @@
&& GET_MODE (sparc_compare_op0) == DImode
&& v9_regcmp_p (code))
{
- operands[1] = gen_rtx (code, DImode,
+ operands[1] = gen_rtx_fmt_ee (code, DImode,
sparc_compare_op0, sparc_compare_op1);
}
else
{
rtx cc_reg = gen_compare_reg (code,
sparc_compare_op0, sparc_compare_op1);
- operands[1] = gen_rtx (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+ operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
}
}")
@@ -2846,14 +2846,14 @@
&& GET_MODE (sparc_compare_op0) == DImode
&& v9_regcmp_p (code))
{
- operands[1] = gen_rtx (code, DImode,
+ operands[1] = gen_rtx_fmt_ee (code, DImode,
sparc_compare_op0, sparc_compare_op1);
}
else
{
rtx cc_reg = gen_compare_reg (code,
sparc_compare_op0, sparc_compare_op1);
- operands[1] = gen_rtx (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+ operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
}
}")
@@ -2876,14 +2876,14 @@
&& GET_MODE (sparc_compare_op0) == DImode
&& v9_regcmp_p (code))
{
- operands[1] = gen_rtx (code, DImode,
+ operands[1] = gen_rtx_fmt_ee (code, DImode,
sparc_compare_op0, sparc_compare_op1);
}
else
{
rtx cc_reg = gen_compare_reg (code,
sparc_compare_op0, sparc_compare_op1);
- operands[1] = gen_rtx (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
+ operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
}
}")
@@ -3146,7 +3146,7 @@
operand1 = XEXP (operand1, 0);
}
- emit_insn (gen_ashlsi3 (temp, gen_rtx (SUBREG, SImode, operand1,
+ emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1,
op1_subword),
shift_16));
emit_insn (gen_lshrsi3 (operand0, temp, shift_16));
@@ -3688,7 +3688,7 @@ return \"srl %1,0,%0\";
gen_rtx_PLUS (DImode, operands[1],
operands[2])),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (SImode, SPARC_ICC_REG)))));
+ gen_rtx_REG (SImode, SPARC_ICC_REG)))));
DONE;
}
}")
@@ -3872,7 +3872,7 @@ return \"srl %1,0,%0\";
gen_rtx_MINUS (DImode, operands[1],
operands[2])),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (SImode, SPARC_ICC_REG)))));
+ gen_rtx_REG (SImode, SPARC_ICC_REG)))));
DONE;
}
}")
@@ -4948,7 +4948,7 @@ return \"srl %1,0,%0\";
gen_rtx_SET (VOIDmode, operand0,
gen_rtx_NEG (DImode, operand1)),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (SImode, SPARC_ICC_REG)))));
+ gen_rtx_REG (SImode, SPARC_ICC_REG)))));
DONE;
}
}")
@@ -5628,7 +5628,7 @@ if (! TARGET_ARCH64)
XEXP (operands[0], 0)),
GEN_INT (INTVAL (operands[3]) & 0xfff),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (Pmode, 15)))));
+ gen_rtx_REG (Pmode, 15)))));
else
emit_jump_insn
(gen_rtx_PARALLEL (VOIDmode,
@@ -5636,7 +5636,7 @@ if (! TARGET_ARCH64)
gen_rtx_SET (VOIDmode, pc_rtx,
XEXP (operands[0], 0)),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (Pmode, 15)))));
+ gen_rtx_REG (Pmode, 15)))));
goto finish_call;
}
@@ -5660,13 +5660,13 @@ if (! TARGET_ARCH64)
gen_rtvec (3, gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx),
GEN_INT (INTVAL (operands[3]) & 0xfff),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (Pmode, 15)))));
+ gen_rtx_REG (Pmode, 15)))));
else
emit_call_insn
(gen_rtx_PARALLEL (VOIDmode,
gen_rtvec (2, gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx),
gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_raw_REG (Pmode, 15)))));
+ gen_rtx_REG (Pmode, 15)))));
finish_call:
#if 0
@@ -5799,7 +5799,7 @@ if (! TARGET_ARCH64)
vec = gen_rtvec (2,
gen_rtx_SET (VOIDmode, operands[0],
gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx)),
- gen_rtx_CLOBBER (VOIDmode, gen_rtx_raw_REG (Pmode, 15)));
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 15)));
emit_call_insn (gen_rtx_PARALLEL (VOIDmode, vec));
@@ -5891,13 +5891,13 @@ if (! TARGET_ARCH64)
""
"
{
- rtx valreg1 = gen_rtx_raw_REG (DImode, 24);
- rtx valreg2 = gen_rtx_raw_REG (TARGET_ARCH64 ? TFmode : DFmode, 32);
+ rtx valreg1 = gen_rtx_REG (DImode, 24);
+ rtx valreg2 = gen_rtx_REG (TARGET_ARCH64 ? TFmode : DFmode, 32);
rtx result = operands[0];
if (! TARGET_ARCH64)
{
- rtx rtnreg = gen_rtx_raw_REG (SImode, (leaf_function ? 15 : 31));
+ rtx rtnreg = gen_rtx_REG (SImode, (leaf_function ? 15 : 31));
rtx value = gen_reg_rtx (SImode);
/* Fetch the instruction where we will return to and see if it's an unimp
@@ -5999,7 +5999,7 @@ if (! TARGET_ARCH64)
/* Find the containing function's current nonlocal goto handler,
which will do any cleanups and then jump to the label. */
- labreg = gen_rtx_raw_REG (Pmode, 8);
+ labreg = gen_rtx_REG (Pmode, 8);
emit_move_insn (labreg, lab);
/* Restore %fp from stack pointer value for containing function.