aboutsummaryrefslogtreecommitdiff
path: root/gcc/bt-load.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/bt-load.c')
-rw-r--r--gcc/bt-load.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index f5b0782..4a33940 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -193,20 +193,17 @@ static int
find_btr_reference (rtx *px, void *preg)
{
rtx x;
- int regno, i;
if (px == preg)
return -1;
x = *px;
if (!REG_P (x))
return 0;
- regno = REGNO (x);
- for (i = hard_regno_nregs[regno][GET_MODE (x)] - 1; i >= 0; i--)
- if (TEST_HARD_REG_BIT (all_btrs, regno+i))
- {
- btr_reference_found = px;
- return 1;
- }
+ if (overlaps_hard_reg_set_p (all_btrs, GET_MODE (x), REGNO (x)))
+ {
+ btr_reference_found = px;
+ return 1;
+ }
return -1;
}
@@ -433,7 +430,7 @@ note_btr_set (rtx dest, rtx set ATTRIBUTE_UNUSED, void *data)
if (!REG_P (dest))
return;
regno = REGNO (dest);
- end_regno = regno + hard_regno_nregs[regno][GET_MODE (dest)];
+ end_regno = END_HARD_REGNO (dest);
for (; regno < end_regno; regno++)
if (TEST_HARD_REG_BIT (all_btrs, regno))
{