summaryrefslogtreecommitdiff
path: root/gcc/regmove.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r--gcc/regmove.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 29f6e6546b6..8dc2d54a674 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -616,10 +616,10 @@ copy_src_to_dest (rtx insn, rtx src, rtx dest)
int src_regno;
int dest_regno;
- /* A REG_LIVE_LENGTH of -1 indicates the register is equivalent to a constant
- or memory location and is used infrequently; a REG_LIVE_LENGTH of -2 is
- parameter when there is no frame pointer that is not allocated a register.
- For now, we just reject them, rather than incrementing the live length. */
+ /* A REG_LIVE_LENGTH of -1 indicates the register must not go into
+ a hard register, e.g. because it crosses as setjmp. See the
+ comment in regstat.c:regstat_bb_compute_ri. Don't try to apply
+ any transformations to such regs. */
if (REG_P (src)
&& REG_LIVE_LENGTH (REGNO (src)) > 0