Use the userspace frame version of $epcc rather than the live register,
whose value may have been replaced by an intervening TLB exception.  For
reasons unknown, the replaced value was itself unaligned, suggesting a
hardware bug, but not something to diagnose at this moment.

This new version of the code does have a bug as well: it may behave
incorrectly if the kernel itself experiences an unaligned access that
will be emulated.  This should not happen, but then, neither should the
other problems mentioned above.