On ARM, the kernel xfer event code added extra calls to canonicalize_pc_target(), which can't be called twice: the ISA mode is lost then. We fix that here by refactoring the code to call just once.
Tested on the client.signal test, which is ported and enabled in a forthcoming PR for #4516 (closed).
Issue: #4516 (closed), #4522 (closed) Fixes #4522 (closed)