This patch simplifies register accesses in NativeRegisterContextLinux_arm64 and also adds some bare minimum caching to avoid multiple calls to ptrace during a stop.
Linux ptrace returns data in the form of structures containing GPR/FPR data. This means that one single call is enough to read all GPRs or FPRs. We do that once per stop and keep reading from or writing to the buffer that we have in NativeRegisterContextLinux_arm64 class. Before a resume or detach we write all buffers back.
This is tested on aarch64 thunder x1 with Ubuntu 18.04. Also tested regressions on x86_64.
Maybe this could be a method on NativeRegisterContextLinux. We can always later lift it to the main class if we find a reason to do that...