Do the necessary FP profitability checks once, in a new pre CSR spilling
function, referring to that in hasFP. Also ensure that hasFP returns true
prior to this calculation.
This fixes various codegen issues caused by an inconsistent return value
of hasFP, such as PR49217.
nit: maybe add a TODO/FIXME comment to say that this approach is probably temporary and may be removed in the future when LocalStackSlotAllocation works on multiple StackIDs. (as that will have created virtual base pointers, so there's no long the need to always force the availability of the FP).