diff options
Diffstat (limited to 'gcc/config/m88k')
-rw-r--r-- | gcc/config/m88k/m88k.c | 164 | ||||
-rw-r--r-- | gcc/config/m88k/m88k.h | 35 | ||||
-rw-r--r-- | gcc/config/m88k/m88k.md | 104 | ||||
-rw-r--r-- | gcc/config/m88k/sysv3.h | 15 |
4 files changed, 160 insertions, 158 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c index df3010e1f1c..ddc80506b1b 100644 --- a/gcc/config/m88k/m88k.c +++ b/gcc/config/m88k/m88k.c @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Motorola 88000. - Copyright (C) 1988, 92, 93, 94, 95, 16, 1997, 1999 Free Software + Copyright (C) 1988, 92, 93, 94, 95, 96, 1997, 1998, 1999 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@mcc.com) Currently maintained by (gcc@dg-rtp.dg.com) @@ -22,12 +22,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" - -#include <stdio.h> -#include <sys/types.h> -#include <time.h> -#include <ctype.h> - +#include "system.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" @@ -44,8 +39,6 @@ Boston, MA 02111-1307, USA. */ #include "flags.h" extern char *version_string; -extern time_t time (); -extern char *ctime (); extern int flag_traditional; extern FILE *asm_out_file; @@ -237,7 +230,7 @@ emit_move_sequence (operands, mode, scratch) || 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; } } @@ -247,7 +240,7 @@ emit_move_sequence (operands, mode, scratch) || (operand1 == const0_rtx && GET_MODE_SIZE (mode) <= UNITS_PER_WORD)) { /* 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 && ! reload_completed) @@ -269,7 +262,7 @@ emit_move_sequence (operands, mode, scratch) && symbolic_address_p (operand1), operand1, temp, scratch); if (mode != SImode) - operands[1] = gen_rtx (SUBREG, mode, operands[1], 0); + operands[1] = gen_rtx_SUBREG (mode, operands[1], 0); } } @@ -316,28 +309,33 @@ legitimize_address (pic, orig, reg, scratch) temp = ((reload_in_progress || reload_completed) ? reg : gen_reg_rtx (Pmode)); - emit_insn (gen_rtx (SET, VOIDmode, temp, - gen_rtx (HIGH, SImode, - gen_rtx (UNSPEC, SImode, - gen_rtvec (1, addr), - 0)))); - emit_insn (gen_rtx (SET, VOIDmode, temp, - gen_rtx (LO_SUM, SImode, temp, - gen_rtx (UNSPEC, SImode, - gen_rtvec (1, addr), - 0)))); + emit_insn (gen_rtx_SET + (VOIDmode, temp, + gen_rtx_HIGH (SImode, + gen_rtx_UNSPEC (SImode, + gen_rtvec (1, addr), + 0)))); + + emit_insn (gen_rtx_SET + (VOIDmode, temp, + gen_rtx_LO_SUM (SImode, temp, + gen_rtx_UNSPEC (SImode, + gen_rtvec (1, addr), + 0)))); addr = temp; } - new = gen_rtx (MEM, Pmode, - gen_rtx (PLUS, SImode, - pic_offset_table_rtx, addr)); + + new = gen_rtx_MEM (Pmode, + gen_rtx_PLUS (SImode, + pic_offset_table_rtx, addr)); + current_function_uses_pic_offset_table = 1; RTX_UNCHANGING_P (new) = 1; insn = emit_move_insn (reg, new); /* 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)); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig, + REG_NOTES (insn)); new = reg; } else if (GET_CODE (addr) == CONST) @@ -381,7 +379,7 @@ legitimize_address (pic, orig, reg, scratch) for this address. */ abort (); } - new = gen_rtx (PLUS, SImode, base, addr); + new = gen_rtx_PLUS (SImode, base, addr); /* Should we set special REG_NOTEs here? */ } } @@ -395,15 +393,15 @@ legitimize_address (pic, orig, reg, scratch) reg = gen_reg_rtx (Pmode); } - emit_insn (gen_rtx (SET, VOIDmode, - reg, gen_rtx (HIGH, SImode, addr))); - new = gen_rtx (LO_SUM, SImode, reg, addr); + emit_insn (gen_rtx_SET (VOIDmode, + reg, gen_rtx_HIGH (SImode, addr))); + new = gen_rtx_LO_SUM (SImode, reg, addr); } if (new != orig && GET_CODE (orig) == MEM) { - new = gen_rtx (MEM, GET_MODE (orig), new); + new = gen_rtx_MEM (GET_MODE (orig), new); RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (orig); MEM_COPY_ATTRIBUTES (new, orig); } @@ -527,7 +525,7 @@ expand_block_move (dest_mem, src_mem, operands) else { #ifdef TARGET_MEM_FUNCTIONS - emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "memcpy"), 0, + emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "memcpy"), 0, VOIDmode, 3, operands[0], Pmode, operands[1], Pmode, @@ -535,7 +533,7 @@ expand_block_move (dest_mem, src_mem, operands) TREE_UNSIGNED (sizetype)), TYPE_MODE (sizetype)); #else - emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "bcopy"), 0, + emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "bcopy"), 0, VOIDmode, 3, operands[1], Pmode, operands[0], Pmode, @@ -596,22 +594,22 @@ block_move_loop (dest, dest_mem, src, src_mem, size, align) offset_rtx = GEN_INT (MOVSTR_LOOP + (1 - units) * align); - value_rtx = gen_rtx (MEM, MEM_IN_STRUCT_P (src_mem) ? mode : BLKmode, - gen_rtx (PLUS, Pmode, - gen_rtx (REG, Pmode, 3), - offset_rtx)); + value_rtx = gen_rtx_MEM (MEM_IN_STRUCT_P (src_mem) ? mode : BLKmode, + gen_rtx_PLUS (Pmode, + gen_rtx_REG (Pmode, 3), + offset_rtx)); RTX_UNCHANGING_P (value_rtx) = RTX_UNCHANGING_P (src_mem); MEM_COPY_ATTRIBUTES (value_rtx, src_mem); emit_insn (gen_call_movstrsi_loop - (gen_rtx (SYMBOL_REF, Pmode, IDENTIFIER_POINTER (entry_name)), + (gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (entry_name)), dest, src, offset_rtx, value_rtx, - gen_rtx (REG, mode, ((units & 1) ? 4 : 5)), + gen_rtx_REG (mode, ((units & 1) ? 4 : 5)), GEN_INT (count))); if (remainder) - block_move_sequence (gen_rtx (REG, Pmode, 2), dest_mem, - gen_rtx (REG, Pmode, 3), src_mem, + block_move_sequence (gen_rtx_REG (Pmode, 2), dest_mem, + gen_rtx_REG (Pmode, 3), src_mem, remainder, align, MOVSTR_LOOP + align); } @@ -652,10 +650,11 @@ block_move_no_loop (dest, dest_mem, src, src_mem, size, align) offset_rtx = GEN_INT (most - (size - remainder)); - value_rtx = gen_rtx (MEM, MEM_IN_STRUCT_P (src_mem) ? mode : BLKmode, - gen_rtx (PLUS, Pmode, - gen_rtx (REG, Pmode, 3), - offset_rtx)); + value_rtx = gen_rtx_MEM (MEM_IN_STRUCT_P (src_mem) ? mode : BLKmode, + gen_rtx_PLUS (Pmode, + gen_rtx_REG (Pmode, 3), + offset_rtx)); + RTX_UNCHANGING_P (value_rtx) = RTX_UNCHANGING_P (src_mem); MEM_COPY_ATTRIBUTES (value_rtx, src_mem); @@ -663,13 +662,13 @@ block_move_no_loop (dest, dest_mem, src, src_mem, size, align) ? (align == 8 ? 6 : 5) : 4); emit_insn (gen_call_block_move - (gen_rtx (SYMBOL_REF, Pmode, IDENTIFIER_POINTER (entry_name)), + (gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (entry_name)), dest, src, offset_rtx, value_rtx, - gen_rtx (REG, mode, value_reg))); + gen_rtx_REG (mode, value_reg))); if (remainder) - block_move_sequence (gen_rtx (REG, Pmode, 2), dest_mem, - gen_rtx (REG, Pmode, 3), src_mem, + block_move_sequence (gen_rtx_REG (Pmode, 2), dest_mem, + gen_rtx_REG (Pmode, 3), src_mem, remainder, align, most); } @@ -724,13 +723,12 @@ block_move_sequence (dest, dest_mem, src, src_mem, size, align, offset) temp[next] = gen_reg_rtx (mode[next]); } size -= amount[next]; - srcp = gen_rtx (MEM, - MEM_IN_STRUCT_P (src_mem) ? mode[next] : BLKmode, - gen_rtx (PLUS, Pmode, src, - GEN_INT (offset_ld))); + srcp = gen_rtx_MEM (MEM_IN_STRUCT_P (src_mem) ? mode[next] : BLKmode, + plus_constant (src, offset_ld)); + RTX_UNCHANGING_P (srcp) = RTX_UNCHANGING_P (src_mem); MEM_COPY_ATTRIBUTES (srcp, src_mem); - emit_insn (gen_rtx (SET, VOIDmode, temp[next], srcp)); + emit_insn (gen_rtx_SET (VOIDmode, temp[next], srcp)); offset_ld += amount[next]; active[next] = TRUE; } @@ -738,13 +736,13 @@ block_move_sequence (dest, dest_mem, src, src_mem, size, align, offset) if (active[phase]) { active[phase] = FALSE; - dstp = gen_rtx (MEM, - MEM_IN_STRUCT_P (dest_mem) ? mode[phase] : BLKmode, - gen_rtx (PLUS, Pmode, dest, - GEN_INT (offset_st))); + dstp + = gen_rtx_MEM (MEM_IN_STRUCT_P (dest_mem) ? mode[phase] : BLKmode, + plus_constant (dest, offset_st)); + RTX_UNCHANGING_P (dstp) = RTX_UNCHANGING_P (dest_mem); MEM_COPY_ATTRIBUTES (dstp, dest_mem); - emit_insn (gen_rtx (SET, VOIDmode, dstp, temp[phase])); + emit_insn (gen_rtx_SET (VOIDmode, dstp, temp[phase])); offset_st += amount[phase]; } } @@ -927,9 +925,9 @@ output_call (operands, addr) } /* Record the values to be computed later as "def name,high-low". */ - sb_name = gen_rtx (EXPR_LIST, VOIDmode, operands[0], sb_name); - sb_high = gen_rtx (EXPR_LIST, VOIDmode, high, sb_high); - sb_low = gen_rtx (EXPR_LIST, VOIDmode, low, sb_low); + sb_name = gen_rtx_EXPR_LIST (VOIDmode, operands[0], sb_name); + sb_high = gen_rtx_EXPR_LIST (VOIDmode, high, sb_high); + sb_low = gen_rtx_EXPR_LIST (VOIDmode, low, sb_low); #endif /* Don't USE_GAS */ return last; @@ -1160,7 +1158,7 @@ legitimize_operand (op, mode) && (u.s.exponent1 == 0x8 || u.s.exponent1 == 0x7) /* Exponent fits */ && (temp = simplify_unary_operation (FLOAT_TRUNCATE, SFmode, op, mode)) != 0) - return gen_rtx (FLOAT_EXTEND, mode, force_reg (SFmode, temp)); + return gen_rtx_FLOAT_EXTEND (mode, force_reg (SFmode, temp)); } else if (register_operand (op, mode)) return op; @@ -1982,13 +1980,13 @@ m88k_expand_prologue () if (flag_pic && save_regs[PIC_OFFSET_TABLE_REGNUM]) { - rtx return_reg = gen_rtx (REG, SImode, 1); + rtx return_reg = gen_rtx_REG (SImode, 1); rtx label = gen_label_rtx (); rtx temp_reg; if (! save_regs[1]) { - temp_reg = gen_rtx (REG, SImode, TEMP_REGNUM); + temp_reg = gen_rtx_REG (SImode, TEMP_REGNUM); emit_move_insn (temp_reg, return_reg); } emit_insn (gen_locate1 (pic_offset_table_rtx, label)); @@ -2092,9 +2090,10 @@ emit_add (dstreg, srcreg, amount) int amount; { rtx incr = GEN_INT (abs (amount)); + if (! ADD_INTVAL (amount)) { - rtx temp = gen_rtx (REG, SImode, TEMP_REGNUM); + rtx temp = gen_rtx_REG (SImode, TEMP_REGNUM); emit_move_insn (temp, incr); incr = temp; } @@ -2207,22 +2206,23 @@ emit_ldst (store_p, regno, mode, offset) enum machine_mode mode; int offset; { - rtx reg = gen_rtx (REG, mode, regno); + rtx reg = gen_rtx_REG (mode, regno); rtx mem; if (SMALL_INTVAL (offset)) { - mem = gen_rtx (MEM, mode, plus_constant (stack_pointer_rtx, offset)); + mem = gen_rtx_MEM (mode, plus_constant (stack_pointer_rtx, offset)); } else { /* offset is too large for immediate index must use register */ rtx disp = GEN_INT (offset); - rtx temp = gen_rtx (REG, SImode, TEMP_REGNUM); - rtx regi = gen_rtx (PLUS, SImode, stack_pointer_rtx, temp); + rtx temp = gen_rtx_REG (SImode, TEMP_REGNUM); + rtx regi = gen_rtx_PLUS (SImode, stack_pointer_rtx, temp); + emit_move_insn (temp, disp); - mem = gen_rtx (MEM, mode, regi); + mem = gen_rtx_MEM (mode, regi); } if (store_p) @@ -2561,9 +2561,8 @@ m88k_function_arg (args_so_far, mode, type, named) || bytes != UNITS_PER_WORD)) return (rtx) 0; - return gen_rtx (REG, - ((mode == BLKmode) ? TYPE_MODE (type) : mode), - 2 + args_so_far); + return gen_rtx_REG (((mode == BLKmode) ? TYPE_MODE (type) : mode), + 2 + args_so_far); } /* Do what is necessary for `va_start'. We look at the current function @@ -2788,15 +2787,14 @@ emit_bcnd (op, label) rtx label; { if (m88k_compare_op1 == const0_rtx) - emit_jump_insn( gen_bcnd ( - gen_rtx (op, VOIDmode,m88k_compare_op0, const0_rtx), - label)); + emit_jump_insn (gen_bcnd + (gen_rtx (op, VOIDmode,m88k_compare_op0, const0_rtx), + label)); else if (m88k_compare_op0 == const0_rtx) - emit_jump_insn( gen_bcnd( - gen_rtx( - swap_condition (op), - VOIDmode, m88k_compare_op1, const0_rtx), - label)); + emit_jump_insn (gen_bcnd + (gen_rtx (swap_condition (op), + VOIDmode, m88k_compare_op1, const0_rtx), + label)); else if (op != EQ && op != NE) emit_jump_insn (gen_bxx (emit_test (op, VOIDmode), label)); else diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h index 5017d8d901b..707bd3cebdd 100644 --- a/gcc/config/m88k/m88k.h +++ b/gcc/config/m88k/m88k.h @@ -975,9 +975,8 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, If the precise function being called is known, FUNC is its FUNCTION_DECL; otherwise, FUNC is 0. */ #define FUNCTION_VALUE(VALTYPE, FUNC) \ - gen_rtx (REG, \ - TYPE_MODE (VALTYPE) == BLKmode ? SImode : TYPE_MODE (VALTYPE), \ - 2) + gen_rtx_REG (TYPE_MODE (VALTYPE) == BLKmode ? SImode : TYPE_MODE (VALTYPE), \ + 2) /* Define this if it differs from FUNCTION_VALUE. */ /* #define FUNCTION_OUTGOING_VALUE(VALTYPE, FUNC) ... */ @@ -997,7 +996,7 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, /* 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) /* True if N is a possible register number for a function value as seen by the caller. */ @@ -1239,8 +1238,8 @@ extern struct rtx_def *m88k_va_arg (); #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ { \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 40)), FNADDR); \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 36)), CXT); \ + emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 40)), FNADDR); \ + emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 36)), CXT); \ } /*** Library Subroutine Names ***/ @@ -1416,23 +1415,23 @@ extern struct rtx_def *m88k_va_arg (); #define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) \ { \ if (GET_CODE (X) == PLUS && CONSTANT_ADDRESS_P (XEXP (X, 1))) \ - (X) = gen_rtx (PLUS, SImode, XEXP (X, 0), \ - copy_to_mode_reg (SImode, XEXP (X, 1))); \ + (X) = gen_rtx_PLUS (SImode, XEXP (X, 0), \ + copy_to_mode_reg (SImode, XEXP (X, 1))); \ if (GET_CODE (X) == PLUS && CONSTANT_ADDRESS_P (XEXP (X, 0))) \ - (X) = gen_rtx (PLUS, SImode, XEXP (X, 1), \ - copy_to_mode_reg (SImode, XEXP (X, 0))); \ + (X) = gen_rtx_PLUS (SImode, XEXP (X, 1), \ + copy_to_mode_reg (SImode, XEXP (X, 0))); \ if (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 0)) == MULT) \ - (X) = gen_rtx (PLUS, SImode, XEXP (X, 1), \ - force_operand (XEXP (X, 0), 0)); \ + (X) = gen_rtx_PLUS (SImode, XEXP (X, 1), \ + force_operand (XEXP (X, 0), 0)); \ if (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 1)) == MULT) \ - (X) = gen_rtx (PLUS, SImode, XEXP (X, 0), \ - force_operand (XEXP (X, 1), 0)); \ + (X) = gen_rtx_PLUS (SImode, XEXP (X, 0), \ + force_operand (XEXP (X, 1), 0)); \ if (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 0)) == PLUS) \ - (X) = gen_rtx (PLUS, Pmode, force_operand (XEXP (X, 0), NULL_RTX),\ - XEXP (X, 1)); \ + (X) = gen_rtx_PLUS (Pmode, force_operand (XEXP (X, 0), NULL_RTX),\ + XEXP (X, 1)); \ if (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 1)) == PLUS) \ - (X) = gen_rtx (PLUS, Pmode, XEXP (X, 0), \ - force_operand (XEXP (X, 1), NULL_RTX)); \ + (X) = gen_rtx_PLUS (Pmode, XEXP (X, 0), \ + force_operand (XEXP (X, 1), NULL_RTX)); \ if (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == CONST \ || GET_CODE (X) == LABEL_REF) \ (X) = legitimize_address (flag_pic, X, 0, 0); \ 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 "" diff --git a/gcc/config/m88k/sysv3.h b/gcc/config/m88k/sysv3.h index 546b6dfc1a6..11df8850ff0 100644 --- a/gcc/config/m88k/sysv3.h +++ b/gcc/config/m88k/sysv3.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Motorola m88100 running the AT&T/Unisoft/Motorola V.3 reference port. - Copyright (C) 1990, 1991, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1990, 1991, 1997, 1998, 1999 Free Software Foundation, Inc. Contributed by Ray Essick (ressick@mot.com) Enhanced by Tom Wood (Tom_Wood@NeXT.com) @@ -145,10 +145,11 @@ do { \ #undef INITIALIZE_TRAMPOLINE #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ { \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 40)), FNADDR); \ - emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 36)), CXT); \ - emit_call_insn (gen_call (gen_rtx (MEM, SImode, \ - gen_rtx (SYMBOL_REF, Pmode, \ - "__enable_execute_stack")), \ - const0_rtx)); \ + emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 40)), FNADDR); \ + emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 36)), CXT); \ + emit_call_insn (gen_call \ + (gen_rtx_MEM \ + (SImode, \ + gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack")), \ + const0_rtx)); \ } |