summaryrefslogtreecommitdiff
path: root/gcc/config/m88k/m88k.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/m88k/m88k.md')
-rw-r--r--gcc/config/m88k/m88k.md104
1 files changed, 54 insertions, 50 deletions
diff --git a/gcc/config/m88k/m88k.md b/gcc/config/m88k/m88k.md
index edab3f706ae..a82a528c420 100644
--- a/gcc/config/m88k/m88k.md
+++ b/gcc/config/m88k/m88k.md
@@ -1,5 +1,5 @@
;;- Machine description for the Motorola 88000 for GNU C compiler
-;;; Copyright (C) 1988, 92-96, 1999 Free Software Foundation, Inc.
+;;; Copyright (C) 1988, 92-96, 1998, 1999 Free Software Foundation, Inc.
;; Contributed by Michael Tiemann (tiemann@mcc.com)
;; Currently maintained by (gcc@dg-rtp.dg.com)
@@ -432,24 +432,25 @@
(match_dup 2)))
(set (match_dup 0)
(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1]) == GET_CODE (operands[3]))
; /* The conditions match. */
else if (GET_CODE (operands[1])
== reverse_condition (GET_CODE (operands[3])))
/* Reverse the condition by complimenting the compare word. */
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);
else
{
/* Make the condition pairs line up by rotating the compare word. */
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[4] = gen_rtx (ROTATE, CCmode, operands[4],
- GEN_INT (((cv2 & ~1) - (cv1 & ~1)) & 0x1f));
+ operands[4] = gen_rtx_ROTATE (CCmode, operands[4],
+ GEN_INT (((cv2 & ~1) - (cv1 & ~1))
+ & 0x1f));
/* Reverse the condition if needed. */
if ((cv1 & 1) != (cv2 & 1))
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);
}")
(define_split
@@ -469,7 +470,7 @@
(match_dup 2)))
(set (match_dup 0)
(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1]) == GET_CODE (operands[3]))
; /* The conditions match. */
else
@@ -478,8 +479,8 @@
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[4] = gen_rtx (ROTATE, CCmode, operands[4],
- GEN_INT ((cv2 - cv1) & 0x1f));
+ operands[4] = gen_rtx_ROTATE (CCmode, operands[4],
+ GEN_INT ((cv2 - cv1) & 0x1f));
}")
(define_split
@@ -499,7 +500,7 @@
(match_dup 4)))
(set (match_dup 0)
(neg:SI (match_op_dup 3 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1])
== reverse_condition (GET_CODE (operands[3])))
;
@@ -509,8 +510,9 @@
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[2] = gen_rtx (ROTATE, CCmode, operands[2],
- GEN_INT (((cv1 & ~1) - (cv2 & ~1)) & 0x1f));
+ operands[2] = gen_rtx_ROTATE (CCmode, operands[2],
+ GEN_INT (((cv1 & ~1) - (cv2 & ~1))
+ & 0x1f));
}")
(define_split
@@ -529,10 +531,10 @@
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
/* Reverse the condition by complimenting the compare word. */
if (GET_CODE (operands[1]) != GET_CODE (operands[3]))
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);")
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -549,7 +551,7 @@
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);")
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -566,7 +568,7 @@
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);")
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -585,23 +587,24 @@
(match_dup 2)))
(set (match_dup 0)
(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1]) == GET_CODE (operands[3]))
; /* The conditions match. */
else if (GET_CODE (operands[1])
== reverse_condition (GET_CODE (operands[3])))
/* Reverse the condition by complimenting the compare word. */
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);
else
{
/* Make the condition pairs line up by rotating the compare word. */
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[4] = gen_rtx (ROTATE, CCmode, operands[4],
- GEN_INT (((cv2 & ~1) - (cv1 & ~1)) & 0x1f));
+ operands[4] = gen_rtx_ROTATE (CCmode, operands[4],
+ GEN_INT (((cv2 & ~1) - (cv1 & ~1))
+ & 0x1f));
/* Reverse the condition if needed. */
if ((cv1 & 1) != (cv2 & 1))
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);
}")
(define_split
@@ -621,7 +624,7 @@
(match_dup 2)))
(set (match_dup 0)
(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1]) == GET_CODE (operands[3]))
; /* The conditions match. */
else
@@ -629,8 +632,8 @@
/* Make the condition pairs line up by rotating the compare word. */
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[4] = gen_rtx (ROTATE, CCmode, operands[4],
- GEN_INT ((cv2 - cv1) & 0x1f));
+ operands[4] = gen_rtx_ROTATE (CCmode, operands[4],
+ GEN_INT ((cv2 - cv1) & 0x1f));
}")
(define_split
@@ -650,7 +653,7 @@
(match_dup 4)))
(set (match_dup 0)
(neg:SI (match_op_dup 3 [(match_dup 5) (const_int 0)])))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
if (GET_CODE (operands[1])
== reverse_condition (GET_CODE (operands[3])))
;
@@ -659,8 +662,9 @@
/* Make the condition pairs line up by rotating the compare word. */
int cv1 = condition_value (operands[1]);
int cv2 = condition_value (operands[3]);
- operands[2] = gen_rtx (ROTATE, CCmode, operands[2],
- GEN_INT (((cv1 & ~1) - (cv2 & ~1)) & 0x1f));
+ operands[2] = gen_rtx_ROTATE (CCmode, operands[2],
+ GEN_INT (((cv1 & ~1) - (cv2 & ~1))
+ & 0x1f));
}")
(define_split
@@ -679,10 +683,10 @@
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);
/* Reverse the condition by complimenting the compare word. */
if (GET_CODE (operands[1]) != GET_CODE (operands[3]))
- operands[4] = gen_rtx (NOT, CCmode, operands[4]);")
+ operands[4] = gen_rtx_NOT (CCmode, operands[4]);")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -699,7 +703,7 @@
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);")
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -716,7 +720,7 @@
(match_dup 4)))
(set (match_dup 0)
(match_op_dup 3 [(match_dup 5) (const_int 0)]))]
- "operands[5] = gen_rtx(SUBREG, CCEVENmode, operands[5], 0);")
+ "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")
;; Logical operations on compare words.
@@ -1786,7 +1790,7 @@
DONE;
/* We don't want the clobber emitted, so handle this ourselves. */
- emit_insn (gen_rtx (SET, VOIDmode, operands[0], operands[1]));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
DONE;
}")
@@ -2279,8 +2283,8 @@
{
operands[1]
= legitimize_address (flag_pic, operands[1], 0, 0);
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (ZERO_EXTEND, SImode, operands[1])));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_ZERO_EXTEND (SImode, operands[1])));
DONE;
}
}")
@@ -2852,7 +2856,7 @@
if (TARGET_USE_DIV)
{
- emit_move_insn (op0, gen_rtx (DIV, SImode, op1, op2));
+ emit_move_insn (op0, gen_rtx_DIV (SImode, op1, op2));
if (TARGET_CHECK_ZERO_DIV && GET_CODE (op2) != CONST_INT)
{
rtx label = gen_label_rtx ();
@@ -2881,7 +2885,7 @@
emit_insn (gen_cmpsi (op2, const0_rtx));
emit_jump_insn (gen_bgt (label1));
/* constant / 0-or-negative */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, op1, neg_op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, neg_op2));
if (!neg)
emit_insn (gen_negsi2 (op0, op0));
@@ -2891,7 +2895,7 @@
emit_barrier ();
emit_label (label1); /* constant / positive */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, op1, op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));
if (neg)
emit_insn (gen_negsi2 (op0, op0));
}
@@ -2914,7 +2918,7 @@
emit_insn (gen_cmpsi (op1, const0_rtx));
emit_jump_insn (gen_bge (label1));
/* 0-or-negative / constant */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, neg_op1, op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, neg_op1, op2));
if (!neg)
emit_insn (gen_negsi2 (op0, op0));
@@ -2922,7 +2926,7 @@
emit_barrier ();
emit_label (label1); /* positive / constant */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, op1, op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));
if (neg)
emit_insn (gen_negsi2 (op0, op0));
}
@@ -2944,7 +2948,7 @@
emit_insn (gen_cmpsi (op1, const0_rtx));
emit_jump_insn (gen_bge (label2));
/* negative / negative-or-0 */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, neg_op1, neg_op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, neg_op1, neg_op2));
if (TARGET_CHECK_ZERO_DIV)
{
@@ -2958,7 +2962,7 @@
emit_barrier ();
emit_label (label2); /* pos.-or-0 / neg.-or-0 */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, op1, neg_op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, neg_op2));
if (TARGET_CHECK_ZERO_DIV)
{
@@ -2975,13 +2979,13 @@
emit_insn (gen_cmpsi (op1, const0_rtx));
emit_jump_insn (gen_bge (label3));
/* negative / positive */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, neg_op1, op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, neg_op1, op2));
emit_insn (gen_negsi2 (op0, op0));
emit_jump_insn (gen_jump (join_label));
emit_barrier ();
emit_label (label3); /* positive-or-0 / positive */
- emit_move_insn (op0, gen_rtx (UDIV, SImode, op1, op2));
+ emit_move_insn (op0, gen_rtx_UDIV (SImode, op1, op2));
}
emit_label (join_label);
@@ -3016,8 +3020,8 @@
else if (GET_CODE (op2) != CONST_INT && TARGET_CHECK_ZERO_DIV)
{
rtx label = gen_label_rtx ();
- emit_insn (gen_rtx (SET, VOIDmode, operands[0],
- gen_rtx (UDIV, SImode, operands[1], op2)));
+ emit_insn (gen_rtx_SET (VOIDmode, operands[0],
+ gen_rtx_UDIV (SImode, operands[1], op2)));
emit_insn (gen_tcnd_divide_by_zero (op2, label));
emit_label (label);
emit_insn (gen_dummy (operands[0]));
@@ -3801,7 +3805,7 @@
{
register rtx index_diff = gen_reg_rtx (SImode);
register rtx low = GEN_INT (-INTVAL (operands[1]));
- register rtx label = gen_rtx (LABEL_REF, VOIDmode, operands[3]);
+ register rtx label = gen_rtx_LABEL_REF (Pmode, operands[3]);
register rtx base;
if (! CASE_VECTOR_INSNS)
@@ -3879,8 +3883,8 @@
{
if (GET_CODE (operands[0]) == MEM
&& ! call_address_operand (XEXP (operands[0], 0), SImode))
- 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 ""
@@ -3901,8 +3905,8 @@
{
if (GET_CODE (operands[1]) == MEM
&& ! call_address_operand (XEXP (operands[1], 0), SImode))
- 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 ""