aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/dsp16xx
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/dsp16xx
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/dsp16xx')
-rw-r--r--gcc/config/dsp16xx/dsp16xx.c122
-rw-r--r--gcc/config/dsp16xx/dsp16xx.md46
2 files changed, 93 insertions, 75 deletions
diff --git a/gcc/config/dsp16xx/dsp16xx.c b/gcc/config/dsp16xx/dsp16xx.c
index b1a1a1c..cac77af 100644
--- a/gcc/config/dsp16xx/dsp16xx.c
+++ b/gcc/config/dsp16xx/dsp16xx.c
@@ -21,7 +21,7 @@ Boston, MA 02111-1307, USA. */
/* Some output-actions in dsp1600.md need these. */
#include "config.h"
-#include <stdio.h>
+#include "system.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -1795,10 +1795,11 @@ enum machine_mode mode;
quotient = shift_amount/16;
shift_amount = shift_amount - (quotient * 16);
for (i = 0; i < quotient; i++)
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (shift_op, mode,
- first_shift_emitted ? operands[0] : operands[1],
- GEN_INT (16))));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx (shift_op, mode,
+ first_shift_emitted
+ ? operands[0] : operands[1],
+ GEN_INT (16))));
first_shift_emitted = 1;
}
else if (shift_amount/8)
@@ -1806,10 +1807,11 @@ enum machine_mode mode;
quotient = shift_amount/8;
shift_amount = shift_amount - (quotient * 8);
for (i = 0; i < quotient; i++)
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (shift_op, mode,
- first_shift_emitted ? operands[0] : operands[1],
- GEN_INT (8))));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx (shift_op, mode,
+ first_shift_emitted
+ ? operands[0] : operands[1],
+ GEN_INT (8))));
first_shift_emitted = 1;
}
else if (shift_amount/4)
@@ -1817,10 +1819,11 @@ enum machine_mode mode;
quotient = shift_amount/4;
shift_amount = shift_amount - (quotient * 4);
for (i = 0; i < quotient; i++)
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (shift_op, mode,
- first_shift_emitted ? operands[0] : operands[1],
- GEN_INT (4))));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx (shift_op, mode,
+ first_shift_emitted
+ ? operands[0] : operands[1],
+ GEN_INT (4))));
first_shift_emitted = 1;
}
else if (shift_amount/1)
@@ -1828,10 +1831,11 @@ enum machine_mode mode;
quotient = shift_amount/1;
shift_amount = shift_amount - (quotient * 1);
for (i = 0; i < quotient; i++)
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (shift_op, mode,
- first_shift_emitted ? operands[0] : operands[1],
- GEN_INT (1))));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx (shift_op, mode,
+ first_shift_emitted
+ ? operands[0] : operands[1],
+ GEN_INT (1))));
first_shift_emitted = 1;
}
}
@@ -2085,7 +2089,7 @@ dsp16xx_function_arg (args_so_far, mode, type, named)
args_so_far++;
if (named && args_so_far < 4 && !MUST_PASS_IN_STACK (mode,type))
- return gen_rtx (REG, mode, args_so_far + FIRST_REG_FOR_FUNCTION_ARG);
+ return gen_rtx_REG (mode, args_so_far + FIRST_REG_FOR_FUNCTION_ARG);
else
return (struct rtx_def *) 0;
}
@@ -2135,14 +2139,14 @@ gen_tst_reg (x)
if (mode == QImode)
{
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (2,
- gen_rtx (SET, VOIDmode, cc0_rtx, x),
- gen_rtx (CLOBBER, VOIDmode,
- gen_rtx (SCRATCH, QImode, 0)))));
+ emit_insn (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (2, gen_rtx_SET (VOIDmode, cc0_rtx, x),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)))));
}
else if (mode == HImode)
- emit_insn (gen_rtx (SET, VOIDmode, cc0_rtx, x));
+ emit_insn (gen_rtx_SET (VOIDmode, cc0_rtx, x));
else
fatal ("Invalid mode for gen_tst_reg");
@@ -2165,54 +2169,64 @@ gen_compare_reg (code, x, y)
if (mode == QImode)
{
- if (code == GTU || code == GEU ||
- code == LTU || code == LEU)
+ if (code == GTU || code == GEU
+ || code == LTU || code == LEU)
{
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (3,
- gen_rtx (SET, VOIDmode, cc0_rtx,
- gen_rtx (COMPARE, mode, x, y)),
- gen_rtx (CLOBBER, VOIDmode,
- gen_rtx (SCRATCH, QImode, 0)),
- gen_rtx (CLOBBER, VOIDmode,
- gen_rtx (SCRATCH, QImode, 0)))));
+ emit_insn (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (3,
+ gen_rtx_SET (VOIDmode, cc0_rtx,
+ gen_rtx_COMPARE (mode, x, y)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)))));
}
else
{
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (3,
- gen_rtx (SET, VOIDmode, cc0_rtx,
- gen_rtx (COMPARE, mode, x, y)),
- gen_rtx (CLOBBER, VOIDmode,
- gen_rtx (SCRATCH, QImode, 0)),
- gen_rtx (CLOBBER, VOIDmode,
- gen_rtx (SCRATCH, QImode, 0)))));
+ emit_insn (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (3, gen_rtx_SET (VOIDmode, cc0_rtx,
+ gen_rtx_COMPARE (mode, x, y)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)))));
}
}
else if (mode == HImode)
{
- if (code == GTU || code == GEU ||
- code == LTU || code == LEU)
+ if (code == GTU || code == GEU
+ || code == LTU || code == LEU)
{
#if 1
- emit_insn (gen_rtx (PARALLEL, VOIDmode, gen_rtvec (5,
- gen_rtx (SET, VOIDmode, cc0_rtx, gen_rtx (COMPARE, VOIDmode, x, y)),
- gen_rtx (CLOBBER, VOIDmode, gen_rtx (SCRATCH, QImode, 0)),
- gen_rtx (CLOBBER, VOIDmode, gen_rtx (SCRATCH, QImode, 0)),
- gen_rtx (CLOBBER, VOIDmode, gen_rtx (SCRATCH, QImode, 0)),
- gen_rtx (CLOBBER, VOIDmode, gen_rtx (SCRATCH, QImode, 0)))));
+ emit_insn (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (5,
+ gen_rtx_SET (VOIDmode, cc0_rtx,
+ gen_rtx_COMPARE (VOIDmode,
+ x, y)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (QImode)))));
#else
if (!dsp16xx_ucmphi2_libcall)
- dsp16xx_ucmphi2_libcall = gen_rtx (SYMBOL_REF, Pmode, UCMPHI2_LIBCALL);
+ dsp16xx_ucmphi2_libcall = gen_rtx_SYMBOL_REF (Pmode, UCMPHI2_LIBCALL);
emit_library_call (dsp16xx_ucmphi2_libcall, 1, HImode, 2,
x, HImode, y, HImode);
emit_insn (gen_tsthi_1 (copy_to_reg(hard_libcall_value (HImode))));
#endif
}
else
- emit_insn (gen_rtx (SET, VOIDmode, cc0_rtx,
- gen_rtx (COMPARE, VOIDmode, force_reg(HImode, x),
- force_reg(HImode,y))));
+ emit_insn (gen_rtx_SET (VOIDmode, cc0_rtx,
+ gen_rtx_COMPARE (VOIDmode,
+ force_reg (HImode, x),
+ force_reg (HImode,y))));
}
else
fatal ("Invalid mode for integer comparison in gen_compare_reg");
diff --git a/gcc/config/dsp16xx/dsp16xx.md b/gcc/config/dsp16xx/dsp16xx.md
index 6029489..5ded3bb 100644
--- a/gcc/config/dsp16xx/dsp16xx.md
+++ b/gcc/config/dsp16xx/dsp16xx.md
@@ -195,8 +195,8 @@
if (GET_CODE(operands[1]) == REG)
{
- if (REGNO (operands[1]) == REG_Y ||
- REGNO (operands[1]) == REG_PROD)
+ if (REGNO (operands[1]) == REG_Y
+ || REGNO (operands[1]) == REG_PROD)
{
output_asm_insn (\"a1=%1\", operands);
}
@@ -1049,11 +1049,13 @@
emit_move_insn (operands[0], addr_reg);
/* Then generate the add insn */
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (2,
- gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (PLUS, QImode, operands[0], offset)),
- gen_rtx (CLOBBER, VOIDmode, operands[2]))));
+ emit_insn (gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (2,
+ gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_PLUS (QImode, operands[0],
+ offset)),
+ gen_rtx_CLOBBER (VOIDmode, operands[2]))));
DONE;
}")
@@ -1251,7 +1253,7 @@
"
{
operands[2] = gen_reg_rtx (HImode);
- operands[3] = gen_rtx (SUBREG, QImode, operands[2], 1);
+ operands[3] = gen_rtx_SUBREG (QImode, operands[2], 1);
}")
;;(define_insn "extendqihi2"
@@ -1301,7 +1303,7 @@
"
{
operands[2] = gen_reg_rtx (HImode);
- operands[3] = gen_rtx (SUBREG, QImode, operands[2], 1);
+ operands[3] = gen_rtx_SUBREG (QImode, operands[2], 1);
}")
@@ -1357,8 +1359,8 @@
emit_jump_insn (gen_bge (label1));
emit_insn (gen_fix_trunchfhi2 (operands[0], operands[1]));
- emit_jump_insn (gen_rtx (SET, VOIDmode, pc_rtx,
- gen_rtx (LABEL_REF, VOIDmode, label2)));
+ emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx,
+ gen_rtx_LABEL_REF (VOIDmode, label2)));
emit_barrier ();
emit_label (label1);
@@ -1372,7 +1374,7 @@
/* allow REG_NOTES to be set on last insn (labels don't have enough
fields, and can't be used for REG_NOTES anyway). */
- emit_insn (gen_rtx (USE, VOIDmode, stack_pointer_rtx));
+ emit_insn (gen_rtx_USE (VOIDmode, stack_pointer_rtx));
DONE;
}
}")
@@ -1438,7 +1440,8 @@
#if 0
if (!dsp16xx_ashrhi3_libcall)
- dsp16xx_ashrhi3_libcall = gen_rtx_SYMBOL_REF (Pmode, ASHRHI3_LIBCALL);
+ dsp16xx_ashrhi3_libcall
+ = gen_rtx_SYMBOL_REF (Pmode, ASHRHI3_LIBCALL);
emit_library_call (dsp16xx_ashrhi3_libcall, 1, HImode, 2,
operands[1], HImode,
@@ -1562,7 +1565,8 @@
rtx label2 = gen_label_rtx ();
#if 0
if (!dsp16xx_lshrhi3_libcall)
- dsp16xx_lshrhi3_libcall = gen_rtx_SYMBOL_REF (Pmode, LSHRHI3_LIBCALL);
+ dsp16xx_lshrhi3_libcall
+ = gen_rtx_SYMBOL_REF (Pmode, LSHRHI3_LIBCALL);
emit_library_call (dsp16xx_lshrhi3_libcall, 1, HImode, 2,
operands[1], HImode,
@@ -1704,11 +1708,11 @@
rtx label2 = gen_label_rtx ();
#if 0
if (!dsp16xx_ashlhi3_libcall)
- dsp16xx_ashlhi3_libcall = gen_rtx_SYMBOL_REF (Pmode, ASHLHI3_LIBCALL);
+ dsp16xx_ashlhi3_libcall
+ = gen_rtx_SYMBOL_REF (Pmode, ASHLHI3_LIBCALL);
emit_library_call (dsp16xx_ashlhi3_libcall, 1, HImode, 2,
- operands[1], HImode,
- operands[2], QImode);
+ operands[1], HImode, operands[2], QImode);
emit_move_insn (operands[0], hard_libcall_value(HImode));
DONE;
#else
@@ -2028,8 +2032,8 @@
{
if (GET_CODE (operands[0]) == MEM
&& ! call_address_operand (XEXP (operands[0], 0), QImode))
- operands[0] = gen_rtx (MEM, GET_MODE (operands[0]),
- force_reg (Pmode, XEXP (operands[0], 0)));
+ operands[0] = gen_rtx_MEM (GET_MODE (operands[0]),
+ force_reg (Pmode, XEXP (operands[0], 0)));
}")
(define_insn ""
@@ -2059,8 +2063,8 @@
{
if (GET_CODE (operands[1]) == MEM
&& ! call_address_operand (XEXP (operands[1], 0), QImode))
- operands[1] = gen_rtx (MEM, GET_MODE (operands[1]),
- force_reg (Pmode, XEXP (operands[1], 0)));
+ operands[1] = gen_rtx_MEM (GET_MODE (operands[1]),
+ force_reg (Pmode, XEXP (operands[1], 0)));
}")
(define_insn ""