[sancov] Generalize the code to get the previous instruction to multiple architectures
[sancov] Generalize the code to get the previous instruction to multiple architectures

sancov subtracts one from the address to get the previous instruction,
which makes sense on x86_64, but not on other platforms.
This change ensures that the offset is correct for different platforms.
The logic for computing the offset is copied from sanitizer_common.

Differential Revision: https://reviews.llvm.org/D53039

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@344103 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 96ce5eaa493b1e9c37eccfa0c8aa58f8a04d0708)

apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm,apple/swift-llvm