All out-of-line register save routines need LR, so we cannot wrap the
LR component if there are out-of-line saves. This didn't show up for
testing on Linux because none of the tests there use out-of-line FPR
saves without also using out-of-line GPR saves, which we did handle.
This patch fixes it, and also cleans up code a little.
* config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
make LR a separately shrink-wrapped component unless savres_strategy
contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
wrapping when not both {SAVE,REST}_INLINE_GPRS.