diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 5 |
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. @@ -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; } |