The docs say to use HARD_REGNO_MODE_OK to enforce register pairs.
But reload (find_valid_class_1) rejects classes that include such
registers:
for (regno = 0; regno < FIRST_PSEUDO_REGISTER && !bad; regno++)
{
if (in_hard_reg_set_p (reg_class_contents[rclass], mode, regno)
&& !HARD_REGNO_MODE_OK (regno, mode))
{
bad = 1;
In the past, if I use a register class that excludes the second half
of register pairs, it can't do anything because it requires both parts
of the register pair to be in the class (example: in_hard_reg_set_p
checks this).
Which way is the "right" way?