Previously we only supporting using the system pointer size (aka the
absptr encoding) because llvm-mc's CFI directives always generate EH
frames with that encoding. But libffi uses 4-byte-encoded, hand-rolled
EH frames, so this patch adds support for it.
Fixes #56576.
I ideally the test case would exercise the "LSDA with sdata4" code path too, but this hand-assembled EH frame was a pain in the ass to get right and I don't really want to touch it any more