diff options
author | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-28 20:03:26 +0000 |
---|---|---|
committer | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-28 20:03:26 +0000 |
commit | 253993389794396f05a457bd029c6f38f2705f19 (patch) | |
tree | 51f69a79495e01d0369cd4bf6546fc69c24e0d77 /gcc/reload.c | |
parent | 12e51a1d9272bbff14e487691ecccfbc970f637e (diff) |
PR other/54814
* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
TEST_HARD_REG_BIT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195515 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index fb1021cda45..889a6ccb3e1 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -707,7 +707,7 @@ find_valid_class (enum machine_mode outer ATTRIBUTE_UNUSED, } /* We are trying to reload a subreg of something that is not a register. - Find the largest class which has at least one register valid in + Find the largest class which contains only registers valid in mode MODE. OUTER is the mode of the subreg, DEST_CLASS the class in which we would eventually like to obtain the object. */ @@ -727,10 +727,12 @@ find_valid_class_1 (enum machine_mode outer ATTRIBUTE_UNUSED, { int bad = 0; for (regno = 0; regno < FIRST_PSEUDO_REGISTER && !bad; regno++) - if (TEST_HARD_REG_BIT (reg_class_contents[rclass], regno) - && !HARD_REGNO_MODE_OK (regno, mode)) - bad = 1; - + { + if (in_hard_reg_set_p (reg_class_contents[rclass], mode, regno) + && !HARD_REGNO_MODE_OK (regno, mode)) + bad = 1; + } + if (bad) continue; |