aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1997-11-02 14:19:36 -0700
committerJeff Law <law@gcc.gnu.org>1997-11-02 14:19:36 -0700
commite9a25f70a0a7b82881b56cb3dfa7422b2968682a (patch)
tree46fe768360493f03f7282d07762e7b26c292aabd /gcc/emit-rtl.c
parentbb84e66919817020267815eed4304e543688e722 (diff)
downloadgcc-e9a25f70a0a7b82881b56cb3dfa7422b2968682a.zip
gcc-e9a25f70a0a7b82881b56cb3dfa7422b2968682a.tar.gz
gcc-e9a25f70a0a7b82881b56cb3dfa7422b2968682a.tar.bz2
Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 50c6597..2204cec 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -35,6 +35,7 @@ Boston, MA 02111-1307, USA. */
is the kind of rtx's they make and what arguments they use. */
#include "config.h"
+#include <stdio.h>
#ifdef __STDC__
#include <stdarg.h>
#else
@@ -48,6 +49,7 @@ Boston, MA 02111-1307, USA. */
#include "expr.h"
#include "regs.h"
#include "insn-config.h"
+#include "recog.h"
#include "real.h"
#include "obstack.h"
@@ -58,8 +60,6 @@ Boston, MA 02111-1307, USA. */
#include "bc-optab.h"
#include "bc-emit.h"
-#include <stdio.h>
-
/* Opcode names */
#ifdef BCDEBUG_PRINT_CODE
char *opcode_name[] =
@@ -958,6 +958,8 @@ gen_lowpart (mode, x)
return change_address (x, mode, plus_constant (XEXP (x, 0), offset));
}
+ else if (GET_CODE (x) == ADDRESSOF)
+ return gen_lowpart (mode, force_reg (GET_MODE (x), x));
else
abort ();
}
@@ -1462,7 +1464,7 @@ gen_inline_header_rtx (first_insn, first_parm_insn, first_labelno,
pops_args, stack_slots, forced_labels, function_flags,
outgoing_args_size, original_arg_vector,
original_decl_initial, regno_rtx, regno_flag,
- regno_align)
+ regno_align, parm_reg_stack_loc)
rtx first_insn, first_parm_insn;
int first_labelno, last_labelno, max_parm_regnum, max_regnum, args_size;
int pops_args;
@@ -1475,6 +1477,7 @@ gen_inline_header_rtx (first_insn, first_parm_insn, first_labelno,
rtvec regno_rtx;
char *regno_flag;
char *regno_align;
+ rtvec parm_reg_stack_loc;
{
rtx header = gen_rtx (INLINE_HEADER, VOIDmode,
cur_insn_uid++, NULL_RTX,
@@ -1484,7 +1487,8 @@ gen_inline_header_rtx (first_insn, first_parm_insn, first_labelno,
stack_slots, forced_labels, function_flags,
outgoing_args_size, original_arg_vector,
original_decl_initial,
- regno_rtx, regno_flag, regno_align);
+ regno_rtx, regno_flag, regno_align,
+ parm_reg_stack_loc);
return header;
}
@@ -1674,6 +1678,10 @@ copy_rtx_if_shared (orig)
x->used = 1;
return x;
}
+ break;
+
+ default:
+ break;
}
/* This rtx may not be shared. If it has already been seen,
@@ -1763,6 +1771,9 @@ reset_used_flags (x)
case BARRIER:
/* The chain of insns is not being copied. */
return;
+
+ default:
+ break;
}
x->used = 0;