summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-19 07:10:42 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-19 07:10:42 +0000
commit1c0849e5119ca9f94716a892550c617c8ac04c14 (patch)
treeb85ed03cf9e1c089c04a38231fdb767555930dc3 /gcc/emit-rtl.c
parent937ca48e60c2d96704e1a8ae8b3b1a0f6c8884d7 (diff)
downloadgcc-1c0849e5119ca9f94716a892550c617c8ac04c14.tar.gz
gcc/
* rtl.h (reg_info): Add an nregs field. (REG_NREGS): Use it. (SET_REGNO_RAW): Delete. (set_regno_raw): New function. * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO. (END_REGNO): Redefine in terms of REG_NREGS. * read-rtl.c (read_rtx_code): Call set_regno_raw instead of SET_REGNO_RAW. * emit-rtl.c (set_mode_and_regno): Likewise. * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno instead of SET_REGNO_RAW. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223342 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 03bd76a206b..9766336fdc8 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -435,8 +435,11 @@ gen_blockage (void)
void
set_mode_and_regno (rtx x, machine_mode mode, unsigned int regno)
{
+ unsigned int nregs = (HARD_REGISTER_NUM_P (regno)
+ ? hard_regno_nregs[regno][mode]
+ : 1);
PUT_MODE_RAW (x, mode);
- SET_REGNO_RAW (x, regno);
+ set_regno_raw (x, regno, nregs);
}
/* Generate a new REG rtx. Make sure ORIGINAL_REGNO is set properly, and