diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-07-16 20:58:13 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-07-16 14:58:13 -0600 |
commit | 690d42283de601ba7abe48a832b4aa47f4e6791e (patch) | |
tree | 7b42eea5b744bd93b66f50769215a22678a8f9e1 | |
parent | d7735a074b4b8f8d1070388dbea6528187059319 (diff) | |
download | gcc-690d42283de601ba7abe48a832b4aa47f4e6791e.zip gcc-690d42283de601ba7abe48a832b4aa47f4e6791e.tar.gz gcc-690d42283de601ba7abe48a832b4aa47f4e6791e.tar.bz2 |
pa.c (hppa_legitimize_address): Change references from SImode to either Pmode or word_mode as appropriate.
* pa.c (hppa_legitimize_address): Change references from SImode to
either Pmode or word_mode as appropriate.
(emit_move_sequence, store_reg, load_reg): Likewise.
(set_reg_plus_d, hppa_expand_prologue): Likewise.
(output_mul_insn): Likewise.
* pa.h (PROMOTE_MODE): Likewise.
(INITIALZE_TRAMPOLINE): Likewise.
(Pmode): Define to word_mode.
From-SVN: r28128
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 100 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 12 |
3 files changed, 65 insertions, 56 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e110c6..f9bb028 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com) + * pa.c (hppa_legitimize_address): Change references from SImode to + either Pmode or word_mode as appropriate. + (emit_move_sequence, store_reg, load_reg): Likewise. + (set_reg_plus_d, hppa_expand_prologue): Likewise. + (output_mul_insn): Likewise. + * pa.h (PROMOTE_MODE): Likewise. + (INITIALZE_TRAMPOLINE): Likewise. + (Pmode): Define to word_mode. + * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired value of 4. Allocate 8 bytes for each FP register save. (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index a931857..ec76b52 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -757,8 +757,8 @@ hppa_legitimize_address (x, oldx, mode) && GET_CODE (XEXP (x, 0)) == REG && GET_CODE (XEXP (x, 1)) == SYMBOL_REF) { - rtx reg = force_reg (SImode, XEXP (x, 1)); - return force_reg (SImode, gen_rtx_PLUS (SImode, reg, XEXP (x, 0))); + rtx reg = force_reg (Pmode, XEXP (x, 1)); + return force_reg (Pmode, gen_rtx_PLUS (Pmode, reg, XEXP (x, 0))); } /* Note we must reject symbols which represent function addresses @@ -1159,15 +1159,15 @@ emit_move_sequence (operands, mode, scratch_reg) if (GET_CODE (operand1) == SUBREG) operand1 = XEXP (operand1, 0); - scratch_reg = gen_rtx_REG (SImode, REGNO (scratch_reg)); + scratch_reg = gen_rtx_REG (word_mode, REGNO (scratch_reg)); /* D might not fit in 14 bits either; for such cases load D into scratch reg. */ - if (!memory_address_p (SImode, XEXP (operand1, 0))) + if (!memory_address_p (Pmode, XEXP (operand1, 0))) { emit_move_insn (scratch_reg, XEXP (XEXP (operand1, 0), 1)); emit_move_insn (scratch_reg, gen_rtx_fmt_ee (GET_CODE (XEXP (operand1, 0)), - SImode, + Pmode, XEXP (XEXP (operand1, 0), 0), scratch_reg)); } @@ -1188,15 +1188,15 @@ emit_move_sequence (operands, mode, scratch_reg) if (GET_CODE (operand0) == SUBREG) operand0 = XEXP (operand0, 0); - scratch_reg = gen_rtx_REG (SImode, REGNO (scratch_reg)); + scratch_reg = gen_rtx_REG (word_mode, REGNO (scratch_reg)); /* D might not fit in 14 bits either; for such cases load D into scratch reg. */ - if (!memory_address_p (SImode, XEXP (operand0, 0))) + if (!memory_address_p (Pmode, XEXP (operand0, 0))) { emit_move_insn (scratch_reg, XEXP (XEXP (operand0, 0), 1)); emit_move_insn (scratch_reg, gen_rtx_fmt_ee (GET_CODE (XEXP (operand0, 0)), - SImode, + Pmode, XEXP (XEXP (operand0, 0), 0), scratch_reg)); @@ -1245,12 +1245,12 @@ emit_move_sequence (operands, mode, scratch_reg) /* D might not fit in 14 bits either; for such cases load D into scratch reg. */ if (GET_CODE (operand1) == MEM - && !memory_address_p (SImode, XEXP (operand1, 0))) + && !memory_address_p (Pmode, XEXP (operand1, 0))) { emit_move_insn (scratch_reg, XEXP (XEXP (operand1, 0), 1)); emit_move_insn (scratch_reg, gen_rtx_fmt_ee (GET_CODE (XEXP (operand1, 0)), - SImode, + Pmode, XEXP (XEXP (operand1, 0), 0), scratch_reg)); @@ -2461,22 +2461,22 @@ store_reg (reg, disp, base) { if (VAL_14_BITS_P (disp)) { - emit_move_insn (gen_rtx_MEM (SImode, - gen_rtx_PLUS (SImode, - gen_rtx_REG (SImode, base), + emit_move_insn (gen_rtx_MEM (word_mode, + gen_rtx_PLUS (Pmode, + gen_rtx_REG (Pmode, base), GEN_INT (disp))), - gen_rtx_REG (SImode, reg)); + gen_rtx_REG (word_mode, reg)); } else { - emit_insn (gen_add_high_const (gen_rtx_REG (SImode, 1), - gen_rtx_REG (SImode, base), + emit_insn (gen_add_high_const (gen_rtx_REG (Pmode, 1), + gen_rtx_REG (Pmode, base), GEN_INT (disp))); - emit_move_insn (gen_rtx_MEM (SImode, - gen_rtx_LO_SUM (SImode, - gen_rtx_REG (SImode, 1), + emit_move_insn (gen_rtx_MEM (word_mode, + gen_rtx_LO_SUM (Pmode, + gen_rtx_REG (Pmode, 1), GEN_INT (disp))), - gen_rtx_REG (SImode, reg)); + gen_rtx_REG (word_mode, reg)); } } @@ -2491,21 +2491,21 @@ load_reg (reg, disp, base) { if (VAL_14_BITS_P (disp)) { - emit_move_insn (gen_rtx_REG (SImode, reg), - gen_rtx_MEM (SImode, - gen_rtx_PLUS (SImode, - gen_rtx_REG (SImode, base), + emit_move_insn (gen_rtx_REG (word_mode, reg), + gen_rtx_MEM (word_mode, + gen_rtx_PLUS (Pmode, + gen_rtx_REG (Pmode, base), GEN_INT (disp)))); } else { - emit_insn (gen_add_high_const (gen_rtx_REG (SImode, 1), - gen_rtx_REG (SImode, base), + emit_insn (gen_add_high_const (gen_rtx_REG (Pmode, 1), + gen_rtx_REG (Pmode, base), GEN_INT (disp))); - emit_move_insn (gen_rtx_REG (SImode, reg), - gen_rtx_MEM (SImode, - gen_rtx_LO_SUM (SImode, - gen_rtx_REG (SImode, 1), + emit_move_insn (gen_rtx_REG (word_mode, reg), + gen_rtx_MEM (word_mode, + gen_rtx_LO_SUM (Pmode, + gen_rtx_REG (Pmode, 1), GEN_INT (disp)))); } } @@ -2521,19 +2521,19 @@ set_reg_plus_d(reg, base, disp) { if (VAL_14_BITS_P (disp)) { - emit_move_insn (gen_rtx_REG (SImode, reg), - gen_rtx_PLUS (SImode, - gen_rtx_REG (SImode, base), + emit_move_insn (gen_rtx_REG (Pmode, reg), + gen_rtx_PLUS (Pmode, + gen_rtx_REG (Pmode, base), GEN_INT (disp))); } else { - emit_insn (gen_add_high_const (gen_rtx_REG (SImode, 1), - gen_rtx_REG (SImode, base), + emit_insn (gen_add_high_const (gen_rtx_REG (Pmode, 1), + gen_rtx_REG (Pmode, base), GEN_INT (disp))); - emit_move_insn (gen_rtx_REG (SImode, reg), - gen_rtx_LO_SUM (SImode, - gen_rtx_REG (SImode, 1), + emit_move_insn (gen_rtx_REG (Pmode, reg), + gen_rtx_LO_SUM (Pmode, + gen_rtx_REG (Pmode, 1), GEN_INT (disp))); } } @@ -2670,7 +2670,7 @@ hppa_expand_prologue() actual_fsize = compute_frame_size (size, &save_fregs); /* Compute a few things we will use often. */ - tmpreg = gen_rtx_REG (SImode, 1); + tmpreg = gen_rtx_REG (word_mode, 1); size_rtx = GEN_INT (actual_fsize); /* Save RP first. The calling conventions manual states RP will @@ -2764,7 +2764,7 @@ hppa_expand_prologue() place to get the expected results. sprintf here is just to put something in the name. */ sprintf(hp_profile_label_name, "LP$%04d", -1); - hp_profile_label_rtx = gen_rtx_SYMBOL_REF (SImode, hp_profile_label_name); + hp_profile_label_rtx = gen_rtx_SYMBOL_REF (Pmode, hp_profile_label_name); if (current_function_returns_struct) store_reg (STRUCT_VALUE_REGNUM, - 12 - offsetadj, basereg); if (current_function_needs_context) @@ -2778,10 +2778,10 @@ hppa_expand_prologue() pc_offset += VAL_14_BITS_P (arg_offset) ? 4 : 8; } - emit_move_insn (gen_rtx_REG (SImode, 26), gen_rtx_REG (SImode, 2)); - emit_move_insn (tmpreg, gen_rtx_HIGH (SImode, hp_profile_label_rtx)); - emit_move_insn (gen_rtx_REG (SImode, 24), - gen_rtx_LO_SUM (SImode, tmpreg, hp_profile_label_rtx)); + emit_move_insn (gen_rtx_REG (word_mode, 26), gen_rtx_REG (word_mode, 2)); + emit_move_insn (tmpreg, gen_rtx_HIGH (Pmode, hp_profile_label_rtx)); + emit_move_insn (gen_rtx_REG (Pmode, 24), + gen_rtx_LO_SUM (Pmode, tmpreg, hp_profile_label_rtx)); /* %r25 is set from within the output pattern. */ emit_insn (gen_call_profiler (GEN_INT (- pc_offset - 20))); @@ -2825,7 +2825,7 @@ hppa_expand_prologue() { merge_sp_adjust_with_store = 0; emit_insn (gen_post_stwm (stack_pointer_rtx, - gen_rtx_REG (SImode, i), + gen_rtx_REG (word_mode, i), GEN_INT (-offset))); } else @@ -2886,8 +2886,8 @@ hppa_expand_prologue() Avoid this if the callee saved register wasn't used (these are leaf functions). */ if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM_SAVED]) - emit_move_insn (gen_rtx_REG (SImode, PIC_OFFSET_TABLE_REGNUM_SAVED), - gen_rtx_REG (SImode, PIC_OFFSET_TABLE_REGNUM)); + emit_move_insn (gen_rtx_REG (word_mode, PIC_OFFSET_TABLE_REGNUM_SAVED), + gen_rtx_REG (word_mode, PIC_OFFSET_TABLE_REGNUM)); } @@ -2936,7 +2936,7 @@ hppa_expand_epilogue () int merge_sp_adjust_with_load = 0; /* We will use this often. */ - tmpreg = gen_rtx_REG (SImode, 1); + tmpreg = gen_rtx_REG (word_mode, 1); /* Try to restore RP early to avoid load/use interlocks when RP gets used in the return (bv) instruction. This appears to still @@ -3042,7 +3042,7 @@ hppa_expand_epilogue () } /* If we were deferring a callee register restore, do it now. */ else if (! frame_pointer_needed && merge_sp_adjust_with_load) - emit_insn (gen_pre_ldwm (gen_rtx_REG (SImode, merge_sp_adjust_with_load), + emit_insn (gen_pre_ldwm (gen_rtx_REG (word_mode, merge_sp_adjust_with_load), stack_pointer_rtx, GEN_INT (- actual_fsize))); else if (actual_fsize != 0) @@ -3944,7 +3944,7 @@ output_mul_insn (unsignedp, insn) rtx insn; { import_milli (mulI); - return output_millicode_call (insn, gen_rtx_SYMBOL_REF (SImode, "$$mulI")); + return output_millicode_call (insn, gen_rtx_SYMBOL_REF (Pmode, "$$mulI")); } /* Emit the rtl for doing a division by a constant. */ diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 1f9a917..717e371 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -320,7 +320,7 @@ int lhs_lshift_cint_operand (); #define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ if (GET_MODE_CLASS (MODE) == MODE_INT \ && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ - (MODE) = SImode; + (MODE) = word_mode; /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ @@ -1206,12 +1206,12 @@ extern union tree_node *current_function_decl; emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (CXT)); \ /* fdc and fic only use registers for the address to flush, \ they do not accept integer displacements. */ \ - start_addr = force_reg (SImode, (TRAMP)); \ - end_addr = force_reg (SImode, plus_constant ((TRAMP), 32)); \ + start_addr = force_reg (Pmode, (TRAMP)); \ + end_addr = force_reg (Pmode, plus_constant ((TRAMP), 32)); \ emit_insn (gen_dcacheflush (start_addr, end_addr)); \ - end_addr = force_reg (SImode, plus_constant (start_addr, 32)); \ + end_addr = force_reg (Pmode, plus_constant (start_addr, 32)); \ emit_insn (gen_icacheflush (start_addr, end_addr, start_addr, \ - gen_reg_rtx (SImode), gen_reg_rtx (SImode)));\ + gen_reg_rtx (Pmode), gen_reg_rtx (Pmode)));\ } /* Emit code for a call to builtin_saveregs. We must emit USE insns which @@ -1631,7 +1631,7 @@ extern struct rtx_def *hppa_legitimize_address (); /* Specify the machine mode that pointers have. After generation of rtl, the compiler makes no further distinction between pointers and any other objects of this machine mode. */ -#define Pmode SImode +#define Pmode word_mode /* Add any extra modes needed to represent the condition code. |