Modifying the stack pointer during such a loop will result in invalid uwtables. From experiments
done by @YangKao in D98789: [PEI] add dwarf information for stack probe it seems like modifying uwtables for this case is not feasible for
32-bit x86 targets.
This differential approaches this from the other direction – we avoid touching the sp entirely,
except once after the probing loop is over. Instead we allocate (and spill/reload, if necessary)
additional registers to hold loop variables.
This implementation should produce roughly equivalent code when register spills do not occur.