Initial working version of libunwind for PowerPC 64. Tested on little-endian ppc64 host only.
Based on the existing PowerPC 32 code.
It supports:
- context save/restore (unw_getcontext, unw_init_local, unw_resume)
- read/write from/to saved registers
- backtrace (unw_step)
The main changes were:
- implement ppc64 registers
- add save/restore ppc64 registers code, except for vector ones (this is the next planned step)
- change register names from rXX to %rXX. The built-in assembler of clang, on powerpc64le on Linux, doesn't seem to recognize the former format. Checked that gcc/as also understand this format
This is the continuation of the work started here:
https://github.com/rgdoliveira/libunwind
Note: The commits were squashed to remove test and changed code and present a clean history.
Don't hardcode a number here; add a define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64 further above like the other architectures