On windows, the callee saved registers in a canonical prologue are ordered starting from a lower register number at a lower stack address (with the possible gap for aligning the stack at the top); this is the opposite order that llvm normally produces.
To achieve this, make computeCalleeSaveRegisterPairs lay registers out in the reverse direction, bottom up.
This keeps the logic mostly straightforward compared to before, but gives some amount of mismatch between the stack objects generated by PrologEpilogInserter, which are laid out from top to bottom in the original register order.
This is an alternative to D88543.
When I said "iterate backwards" in the other review, I was more thinking of changing this for loop to iterate over CSI starting from Count - 1, not reversing the stores relative to the frame objects.