diff options
Diffstat (limited to 'gcc/config/m88k/m88k.md')
-rw-r--r-- | gcc/config/m88k/m88k.md | 104 |
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 "" |