diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-08-09 15:28:24 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-08-09 11:28:24 -0400 |
commit | 21d936870387dc6253c88346d357ff230ed50806 (patch) | |
tree | 378bb198fecbc2c1d0e29ac2a11e88a9fdf588cc /gcc | |
parent | b1b6b0cb9c651d78f260abb00b2b60cad32527fb (diff) | |
download | gcc-21d936870387dc6253c88346d357ff230ed50806.zip gcc-21d936870387dc6253c88346d357ff230ed50806.tar.gz gcc-21d936870387dc6253c88346d357ff230ed50806.tar.bz2 |
expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
* expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
(move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
From-SVN: r44740
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 29 |
2 files changed, 23 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd0a9e6..9fb9dfe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 9 11:30:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING. + (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING. + 2001-08-09 Graham Stott <grahams@redhat.com> * sched-vis.c (MAX_VISUAL_NO_UNIT): Define. @@ -172,7 +172,9 @@ static void do_jump_by_parts_equality PARAMS ((tree, rtx, rtx)); static void do_compare_and_jump PARAMS ((tree, enum rtx_code, enum rtx_code, rtx, rtx)); static rtx do_store_flag PARAMS ((tree, rtx, enum machine_mode, int)); +#ifdef PUSH_ROUNDING static void emit_single_push_insn PARAMS ((enum machine_mode, rtx, tree)); +#endif /* Record for each mode whether we can move a register directly to or from an object of that mode in memory. If we can't, we won't try @@ -1387,13 +1389,12 @@ convert_modes (mode, oldmode, x, unsignedp) #define MOVE_MAX_PIECES MOVE_MAX #endif -/* Generate several move instructions to copy LEN bytes - from block FROM to block TO. (These are MEM rtx's with BLKmode). - The caller must pass FROM and TO - through protect_from_queue before calling. +/* Generate several move instructions to copy LEN bytes from block FROM to + block TO. (These are MEM rtx's with BLKmode). The caller must pass FROM + and TO through protect_from_queue before calling. - When TO is NULL, the emit_single_push_insn is used to push the - FROM to stack. + If PUSH_ROUNDING is defined and TO is NULL, emit_single_push_insn is + used to push FROM to the stack. ALIGN is maximum alignment we can assume. */ @@ -1600,7 +1601,13 @@ move_by_pieces_1 (genfun, mode, data) if (data->to) emit_insn ((*genfun) (to1, from1)); else - emit_single_push_insn (mode, from1, NULL); + { +#ifdef PUSH_ROUNDING + emit_single_push_insn (mode, from1, NULL); +#else + abort (); +#endif + } if (HAVE_POST_INCREMENT && data->explicit_inc_to > 0) emit_insn (gen_add2_insn (data->to_addr, GEN_INT (size))); @@ -3144,14 +3151,16 @@ get_push_address (size) return copy_to_reg (temp); } +#ifdef PUSH_ROUNDING + /* Emit single push insn. */ + static void emit_single_push_insn (mode, x, type) rtx x; enum machine_mode mode; tree type; { -#ifdef PUSH_ROUNDING rtx dest_addr; unsigned rounded_size = PUSH_ROUNDING (GET_MODE_SIZE (mode)); rtx dest; @@ -3196,10 +3205,8 @@ emit_single_push_insn (mode, x, type) set_mem_alias_set (dest, 0); } emit_move_insn (dest, x); -#else - abort(); -#endif } +#endif /* Generate code to push X onto the stack, assuming it has mode MODE and type TYPE. |