Section 9.3 of the ARM EHABI [1] states that the 01xxxxxx instruction
should be interpreted as follows:
vsp = vsp - (xxxxxx << 2) - 4
However, libunwind is adding 4 instead of subtracting 4. libgcc's
unwinder follows the spec here, so I'm inclined to believe this is a bug
in libunwind. (Perhaps the intent was to have parentheses around the
expression, such that it was a - (b + 4) instead of a - b + 4, but
it's hard to say at this point.) Interestingly, this appears to go all
the way back to the initial commit of ARM EHABI unwinding, back in June
2014: https://github.com/llvm/llvm-project/commit/97080e0c5eb4.