aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-04-06 19:14:06 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-04-06 19:14:06 -0700
commitd22cba0ade5f4674235583b48ba750f7488738b4 (patch)
treec9aea157a5b1b0df0627efa82d2055379ed72c98
parent5b7c02b65b7d1176433d8b1f7fba7c294d16646d (diff)
downloadgcc-d22cba0ade5f4674235583b48ba750f7488738b4.zip
gcc-d22cba0ade5f4674235583b48ba750f7488738b4.tar.gz
gcc-d22cba0ade5f4674235583b48ba750f7488738b4.tar.bz2
expr.c (expand_builtin): Use copy_to_mode_reg; don't force constants into a register.
* expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use copy_to_mode_reg; don't force constants into a register. From-SVN: r26231
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b538be5..ef26274 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Apr 7 02:11:55 1999 Richard Henderson <rth@cygnus.com>
+
+ * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use
+ copy_to_mode_reg; don't force constants into a register.
+
Tue Apr 6 22:55:25 1999 Richard Henderson <rth@cygnus.com>
* toplev.c (compile_file): Typo flow_dump -> flow2_dump.
diff --git a/gcc/expr.c b/gcc/expr.c
index 8d5fa10..d7f87c5 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -9131,8 +9131,9 @@ expand_builtin (exp, target, subtarget, mode, ignore)
if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_FRAME_ADDRESS)
return tem;
- if (GET_CODE (tem) != REG)
- tem = copy_to_reg (tem);
+ if (GET_CODE (tem) != REG
+ && ! CONSTANT_P (tem))
+ tem = copy_to_mode_reg (Pmode, tem);
return tem;
}