diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 21:19:36 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 21:19:36 +0000 |
commit | 0dbd1c7442aeabc3e63daf6f70f8fb136f0cf38e (patch) | |
tree | 46fe768360493f03f7282d07762e7b26c292aabd /gcc/emit-rtl.c | |
parent | 638d2d6c66cb82345c84b92a46ebf9445c56204c (diff) | |
download | gcc-0dbd1c7442aeabc3e63daf6f70f8fb136f0cf38e.tar.gz |
Update mainline egcs to gcc2 snapshot 971021.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16278 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 50c65972819..2204cec03c3 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; |