aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-08-09 15:28:24 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-08-09 11:28:24 -0400
commit21d936870387dc6253c88346d357ff230ed50806 (patch)
tree378bb198fecbc2c1d0e29ac2a11e88a9fdf588cc /gcc
parentb1b6b0cb9c651d78f260abb00b2b60cad32527fb (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/expr.c29
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.
diff --git a/gcc/expr.c b/gcc/expr.c
index 11aa3dc..5920852 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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.