/* CPU mode switching
- Copyright (C) 1998-2014 Free Software Foundation, Inc.
+ Copyright (C) 1998-2015 Free Software Foundation, Inc.
This file is part of GCC.
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
+#include "backend.h"
#include "target.h"
#include "rtl.h"
-#include "regs.h"
-#include "hard-reg-set.h"
-#include "flags.h"
+#include "cfghooks.h"
+#include "df.h"
+#include "tm_p.h"
#include "insn-config.h"
+#include "regs.h"
+#include "emit-rtl.h"
#include "recog.h"
-#include "basic-block.h"
-#include "tm_p.h"
-#include "function.h"
+#include "flags.h"
+#include "cfgrtl.h"
+#include "cfganal.h"
+#include "lcm.h"
+#include "cfgcleanup.h"
#include "tree-pass.h"
-#include "df.h"
-#include "emit-rtl.h"
/* We want target macros for the mode switching code to be able to refer
to instruction attribute values. */
HARD_REG_SET live_at_edge;
basic_block src_bb = eg->src;
int cur_mode = info[src_bb->index].mode_out;
- rtx mode_set;
+ rtx_insn *mode_set;
REG_SET_TO_HARD_REG_SET (live_at_edge, df_get_live_out (src_bb));
default_rtl_profile ();
/* Do not bother to insert empty sequence. */
- if (mode_set == NULL_RTX)
+ if (mode_set == NULL)
continue;
/* We should not get an abnormal edge here. */
&& GET_CODE ((ret_reg = XEXP (PATTERN (last_insn), 0))) == REG)
{
int ret_start = REGNO (ret_reg);
- int nregs = hard_regno_nregs[ret_start][GET_MODE (ret_reg)];
+ int nregs = REG_NREGS (ret_reg);
int ret_end = ret_start + nregs;
bool short_block = false;
bool multi_reg_return = false;